<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Habanero.BO</name>
    </assembly>
    <members>
        <member name="T:Habanero.BO.Loaders.XmlUIFormFieldLoader">
            <summary>
            Loads UI form property information from xml data
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlLoader">
            <summary>
            Provides a super-class for different types of xml loaders.
            A sub-class must implement LoadFromReader(), which loads the data
            from the reader, and Create(), which creates the object that the
            xml represents.
            </summary>
            (from before) Using Form Template Method (Refactoring p345) to make 
            sure all XmlLoaders implement dtd validation. 
        </member>
        <member name="F:Habanero.BO.Loaders.XmlLoader._defClassFactory">
            <summary>
            The <see cref="T:Habanero.BO.ClassDefinition.IDefClassFactory"/> used to Create the classDef.
            </summary>
        </member>
        <member name="F:Habanero.BO.Loaders.XmlLoader._reader">
            <summary>
            The <see cref="T:System.Xml.XmlReader"/> used to read the xml for the <see cref="T:Habanero.BO.Loaders.XmlLoader"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The loader for the dtds (pass through a DtdLoader object using the standard constructor for the default behaviour)</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.Load(System.Xml.XmlElement)">
            <summary>
            Loads the specified xml element
            </summary>
            <param name="el">The xml element</param>
            <returns>Returns the loaded object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.Create">
            <summary>
            Creates the object using the data that has been read in using
            LoadFromReader(). This method needs to be implemented by the
            sub-class.
            </summary>
            <returns>Returns the object created</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.LoadFromReader">
            <summary>
            Loads all the data out of the reader, assuming the document is 
            well-formed, otherwise the error must be caught and thrown.
            By the end of this method the reader must be finished reading.
            This method needs to be implemented by the sub-class.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.CheckDocumentValidity">
            <summary>
            Checks that the xml document is valid and well-formed
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if the
            xml document is not valid</exception>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.CreateValidatingReader(System.Xml.XmlElement)">
            <summary>
            Creates a reader to read and validate the xml data for the
            property element specified
            </summary>
            <param name="propertyElement">The xml property element</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.GetDTD(System.String)">
            <summary>
            Returns the dtd for the root element name provided
            </summary>
            <param name="rootElementName">The root element name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.ValidationHandler(System.Object,System.Xml.Schema.ValidationEventArgs)">
            <summary>
            Handles the event of an xml document being invalid
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="args">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.CreateXmlElement(System.String)">
            <summary>
            Creates and returns an xml element for the element name provided
            </summary>
            <param name="element">The element</param>
            <returns>Returns an XmlElement object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLoader.ReadAndIgnoreEndTag">
            <summary>
            Carries out the next read, but makes provision to ignore the end
            tag if there is one (and not treat it as an element itself)
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.XmlLoader.DtdLoader">
            <summary>
            Retrieves the dtd loader this XmlLoader was initialised with.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadUIProperty(System.String)">
            <summary>
            Loads a form property definition from the xml string provided
            </summary>
            <param name="xmlUIProp">The xml string</param>
            <returns>Returns a UIFormProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadUIProperty(System.Xml.XmlElement)">
            <summary>
            Loads a form property definition from the xml element provided
            </summary>
            <param name="uiPropElement">The xml element</param>
            <returns>Returns a UIFormProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.Create">
            <summary>
            Creates a form property definition from the data already loaded
            </summary>
            <returns>Returns a UIFormProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadFromReader">
            <summary>
            Loads form property data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadMapperTypeName">
            <summary>
            Loads the mapper type name from the reader.  This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadMapperTypeAssembly">
            <summary>
            Loads the mapper type assembly from the reader.  Called from LoadFromReader();
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadControlType">
            <summary>
            Loads the control type name from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadPropertyName">
            <summary>
            Loads the property name from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadLabel">
            <summary>
            Loads the label from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadEditable">
            <summary>
            Loads the "edtiable" attribute from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadShowAsCompulsory">
            <summary>
            Loads the "edtiable" attribute from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadToolTipText">
            <summary>
            Loads the tool tip text value from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadParameters">
            <summary>
            Loads the attributes from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormFieldLoader.LoadTriggers">
            <summary>
            Loads the triggers for the property
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLookupList">
            <summary>
            Provides a lookup-list sourced from business object collections.
            A lookup-list is typically used to populate features like a ComboBox,
            where the string would be displayed, but the Guid would be the
            value stored (for reasons of data integrity).
            The string-Guid pair collection will be created using each object's
            ToString() function and the object's Guid ID.<br/>
            NB: this class does not provide criteria, so the entire collection
            will be loaded.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObjectLookupList._keyValueDictionary">
            <summary>
            Provides a key value pair where the persisted value can be returned for 
              any displayed value. E.g. the persisted value may be a GUID but the
              displayed value may be a related string.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.Type)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="boType">The business object type</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.Type,System.Int32)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="boType">The business object type</param>
            <param name="timeout">The period after which the cache expires</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="assemblyName">The assembly containing the class</param>
            <param name="className">The class from which to load the values</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.String,System.String,System.Int32)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="assemblyName">The assembly containing the class</param>
            <param name="className">The class from which to load the values</param>
            <param name="timeout">The time period in milliseconds after which the cache expires</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="assemblyName">The assembly containing the class</param>
            <param name="className">The class from which to load the values</param>
            <param name="criteria">Sql criteria to apply on loading of the 
            collection</param>
            <param name="sort">The property to sort on.
            The possible formats are: "property", "property asc",
            "property desc" and "property des".</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.String,System.String,System.String,System.String,System.Boolean)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="assemblyName">The assembly containing the class</param>
            <param name="className">The class from which to load the values</param>
            <param name="criteria">Sql criteria to apply on loading of the 
            collection</param>
            <param name="sort">The property to sort on.
            The possible formats are: "property", "property asc",
            "property desc" and "property des".</param>
            <param name="limitToList">The specification of whether to create a validating lookup or not.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.String,System.String,System.String,System.String,System.Int32)">
             <summary>
             Constructor to initialise a new lookup-list
             </summary>
             <param name="assemblyName">The assembly containing the class</param>
             <param name="className">The class from which to load the values</param>
             <param name="criteria">Sql criteria to apply on loading of the 
             collection</param>
             <param name="sort">The property to sort on.
             The possible formats are: "property", "property asc",
             "property desc" and "property des".</param>
            <param name="timeout">the timeout period in milliseconds. This is the period that the lookup list will cached (i.e will not be reloaded from the database between successive calls)</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.#ctor(System.Type,System.String,System.String,System.Boolean)">
            <summary>
            Constructor to initialise a new lookup-list
            </summary>
            <param name="type">The type of business object that the lookup list is being loaded for</param>
            <param name="criteria">Sql criteria to apply on loading of the 
            collection</param>
            <param name="sort">The property to sort on.
            The possible formats are: "property", "property asc",
            "property desc" and "property des".</param>
            <param name="limitToList">The specification of whether to create a validating lookup or not.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetLookupList">
            <summary>
            Returns a lookup-list for all the business objects stored under
            the class definition held in this instance
            </summary>
            <returns>Returns a collection of string-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetLookupList(Habanero.Base.IDatabaseConnection)">
            <summary>
            Returns a lookup-list for all the business objects stored under
            the class definition held in this instance, using the database
            connection provided
            </summary>
            <param name="connection">The database connection</param>
            <returns>Returns a collection of string-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetLookupList(System.Boolean)">
            <summary>
            Returns a lookup-list for all the business objects stored under
            the class definition held in this instance.  An option is included to ignore the default
            timeout, which causes use of a cached version within the timeout
            period.
            </summary>
            <param name="ignoreTimeout">Whether to ignore the timeout and reload from the database regardless of when the lookup list was last loaded.</param>
            <returns>Returns a collection of string-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetBusinessObjectCollection">
            <summary>
             Returns a collection of related business objects for a particular property based on the definition of the business object lookup list.
             This returns the same set of data as returned by the <see cref="M:Habanero.BO.BusinessObjectLookupList.GetLookupList"/> method.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.CreateDisplayValueDictionary(Habanero.Base.IBusinessObjectCollection,System.Boolean,Habanero.BO.BusinessObjectLookupList.ConvertPrimaryKeyGetAsValueToString)">
            <summary>
            Returns a collection of string Guid pairs from the business object
            collection provided. Each pair consists of a string version of a
            business object and the object's ID.
            </summary>
            <param name="col">The business object collection</param>
            <param name="sortByDisplayValue">Must the collection be sorted by the display value or not</param>
            <param name="coverter">The delegated converter that converts a primary key to the appropriate string</param>
            <returns>Returns a collection of display-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.CreateDisplayValueDictionary(Habanero.Base.IBusinessObjectCollection,System.Boolean)">
            <summary>
            Returns a collection of string Guid pairs from the business object
            collection provided. Each pair consists of a string version of a
            business object and the object's ID.
            </summary>
            <param name="col">The business object collection</param>
            <param name="sortByDisplayValue">Must the collection be sorted by the display value or not</param>
            <returns>Returns a collection of display-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetAvailableDisplayValue(System.Collections.Generic.IDictionary{System.String,System.String},System.String)">
            <summary>
             Returns a unique display value for an item of the given name, so that it can be added to the list without the risk of having duplicate entries.
            </summary>
            <param name="sortedLookupList"></param>
            <param name="stringValue">The new value to determine a display value for</param>
            <returns>Returns a unique display value for an item of the given name.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetValueCollection">
            <summary>
            Returns a collection of all the business objects stored under
            the class definition held in this instance.  The collection contains
            a string version of each of the business objects.
            </summary>
            <returns>Returns an ICollection object</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.CreateValueList(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Populates a collection with a string version of each business
            object in the collection provided
            </summary>
            <param name="col">The business object collection</param>
            <returns>Returns an ICollection object</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLookupList.GetIDValueLookupList">
             <summary>
             Returns the lookup list contents being held where the list is keyed on the list key 
              either a Guid, int or Business object i.e. the value being stored for the property.
             The display value can be looked up.
             </summary>
            <returns>The Key Value Lookup List</returns>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.AssemblyName">
            <summary>
            The assembly containing the class from which values are loaded
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.ClassName">
            <summary>
            The class from which values are loaded
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.Criteria">
            <summary>
            Gets and sets the sql criteria used to limit which objects
            are loaded in the BO collection
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.SortString">
            <summary>
            This property is used by FireStarter to retrieve the sort string without having to load class defs.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.OrderCriteria">
            <summary>
            Gets and sets the sort string used to sort the lookup
            list.  This string must contain the name of a property
            belonging to the business object used to construct the list.
            The possible formats are: "property", "property asc",
            "property desc" and "property des".
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.PropDef">
            <summary>
            Returns the Property definition that this lookup list is for.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.LookupBoClassDef">
            <summary>
             Returns the class definition for the business object type that is the source of the list for this lookup
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.Habanero#Base#ILookupListWithClassDef#ClassDef">
            <summary>
             Returns the class definition for the business object type that is the source of the list for this lookup
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.BoType">
            <summary>
             Returns the BOType for this Business Object.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.DisplayValueDictionary">
            <summary>
            Provides a key value pair where the persisted value can be returned for 
              any displayed value. E.g. the persisted value may be a GUID but the
              displayed value may be a related string.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.LimitToList">
            <summary>
             Returns true if the <see cref="T:Habanero.Base.ILookupList"/> should validate the value of the 
             <see cref="T:Habanero.Base.IBOProp"/> against the items in the <see cref="T:Habanero.Base.ILookupList"/>.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectLookupList.TimeOut">
            <summary>
            The TimeOut the time in Milliseconds before the cache expires. I.e. if the current time + Timeout is
            less than now then the lookup list will be reloaded else the currently loaded lookup list will be used. 
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLookupList.ConvertPrimaryKeyGetAsValueToString">
            <summary>
             This is a delegate used for converting aprimary key to string this is declared so that 
             the <see cref="M:Habanero.BO.BusinessObjectLookupList.CreateDisplayValueDictionary(Habanero.Base.IBusinessObjectCollection,System.Boolean)"/>
             can be used externally without a Prop Def being defined
            </summary>
            <param name="primaryKeyGetAsValue">The PrimaryKey.GetAsValue</param>
        </member>
        <member name="T:Habanero.BO.DataAccessorRemote">
            <summary>
            A data Accessor used for accessing a remote source.
            </summary>
        </member>
        <member name="T:Habanero.BO.IDataAccessor">
            <summary>
            Defines a method of loading and persisting. To create a new implementation of IDataAccessor you will need to create 
            an implementation of <see cref="T:Habanero.BO.IBusinessObjectLoader"/> and of <see cref="T:Habanero.Base.ITransactionCommitter"/> first.  These will
            define how BusinessObjects are loaded and persisted to and from a data store.  This class simply brings these under one
            umbrella, and so together they define your data access method.
            
            To use the supplied DataAccessorDB, which loads and persists using a database as its data store, you would set up your
            IDataAccessor somewhere in your application startup as follows:
            
            <code>BORegistry.DataAccessor = new DataAccessorDB(DatabaseConnection.CurrentConnection)</code>
            
            To do this, make sure you have set up your DatabaseConnection.CurrentConnection already.
            
            This is done in HabaneroApp and its subtypes already, with the default being the DB DataAccessor - you can of course
            set your own if you'd like to instead.
            </summary>
        </member>
        <member name="M:Habanero.BO.IDataAccessor.CreateTransactionCommitter">
            <summary>
            Creates a TransactionCommitter for you to use to persist BusinessObjects. A new TransactionCommitter is required
            each time an object or set of objects is persisted.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.IDataAccessor.BusinessObjectLoader">
            <summary>
            The <see cref="P:Habanero.BO.IDataAccessor.BusinessObjectLoader"/> to use to load BusinessObjects
            </summary>
        </member>
        <member name="M:Habanero.BO.DataAccessorRemote.#ctor(Habanero.BO.IDataAccessor)">
            <summary>
            
            </summary>
            <param name="remoteDataAccessor"></param>
        </member>
        <member name="T:Habanero.BO.DataAccessorMultiSource">
            <summary>
            A Data Accessor that is used to configure loading of business objects from 
            multiple data sources.
            E.g. By using <see cref="M:Habanero.BO.DataAccessorMultiSource.AddDataAccessor(System.Type,Habanero.BO.IDataAccessor)"/> you can configure the DataSource 
            that should be used for loading and saving of each Type of Business Object.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataAccessorMultiSource.#ctor(Habanero.BO.IDataAccessor)">
            <summary>
            Construct the DataSource with a default accessor
            </summary>
            <param name="defaultDataAccessor"></param>
        </member>
        <member name="M:Habanero.BO.DataAccessorMultiSource.CreateTransactionCommitter">
            <summary>
            Returns the <see cref="T:Habanero.Base.ITransactionCommitter"/> to be used when using this
            <see cref="T:Habanero.BO.IDataAccessor"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataAccessorMultiSource.AddDataAccessor(System.Type,Habanero.BO.IDataAccessor)">
            <summary>
            Add the <paramref name="dataAccessor"/> for the specified <paramref name="type"/>.
            </summary>
            <param name="type">The business object type</param>
            <param name="dataAccessor">The data accessor to use for loading and persisting business objects.</param>
        </member>
        <member name="P:Habanero.BO.DataAccessorMultiSource.BusinessObjectLoader">
            <summary>
            Returns the <see cref="T:Habanero.BO.IBusinessObjectLoader"/> to be used when using this
            <see cref="T:Habanero.BO.IDataAccessor"/>.
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.SingleComparer`1">
            <summary>
            Compares two business objects on the Single property specified 
            in the constructor
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.SingleComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the Single property
            on which two business objects will be compared using the Compare()
            method
            </summary>
            <param name="propName">The Single property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.SingleComparer`1.Compare(`0,`0)">
            <summary>
            Compares two business objects on the Single property specified in 
            the constructor
            </summary>
            <param name="x">The first object to compare</param>
            <param name="y">The second object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first Single is less, equal to or more
            than the second</returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIDef">
            <summary>
            Defines how the properties of a class are displayed in a user
            interface, as specified in the class definitions xml file.
            This consists of definitions for a grid display and an editing form.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.#ctor(System.String,Habanero.BO.ClassDefinition.IUIForm,Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Constructor to initialise a new definition with the name, form
            and grid definitions provided
            </summary>
            <param name="name">The name</param>
            <param name="uiForm">The form definition</param>
            <param name="uiGrid">The grid definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.GetUIFormProperties">
            <summary>
            Returns the form property definitions
            </summary>
            <returns>Returns a UIForm object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.GetUIGridProperties">
            <summary>
            Returns the grid property definitions
            </summary>
            <returns>Returns a UIGridDef object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.GetFormField(System.String)">
            <summary>
             Returns the form field for this UIDefinition for the property specified.
             If the form field for the property is not defined in the uidef then null is returned.
            </summary>
            <param name="propertyName">The property name that you want the form field for</param>
            <returns>the form field or null</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.op_Equality(Habanero.BO.ClassDefinition.UIDef,Habanero.BO.ClassDefinition.UIDef)">
            <summary>
             overloads the operator == 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.op_Inequality(Habanero.BO.ClassDefinition.UIDef,Habanero.BO.ClassDefinition.UIDef)">
            <summary>
             overloads the operator != 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.Equals(Habanero.BO.ClassDefinition.UIDef)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            
            <returns>
            true if the current object is equal to the other parameter; otherwise, false.
            </returns>
            
            <param name="otherUIDef">An object to compare with this object.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIDef.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.Name">
            <summary>
            Returns the name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.UIForm">
            <summary>
            Returns the form definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.UIGrid">
            <summary>
            Returns the grid definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.UIDefCol">
            <summary>
             Gets a Collection of UIDefs
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.ClassDef">
            <summary>
            The Class Definition that this UIDef belongs to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIDef.ClassName">
            <summary>
            Returns the ClassName of the Class tha this UIDef is for.
            </summary>
        </member>
        <member name="T:Habanero.BO.PropRuleString">
            <summary>
            Checks string values against property rules that test for validity.
            See System.Text.RegularExpressions for more information on regular
            expression formatting.
            </summary>
        </member>
        <member name="T:Habanero.BO.PropRuleBase">
            <summary>
            Provides a super-class for property rules that test the validity of
            a property value.  If you would like to implement your own property
            rule checker, inherit from this class, override the
            IsPropValueValid method and add a constructor with the same arguments
            as this one and pass back these arguments to base().
            In the class definitions, in the 'rule'
            element under the relevant 'property', specify the class and assembly
            of your newly implemented class.
            </summary>
        </member>
        <member name="F:Habanero.BO.PropRuleBase._parameters">
            <summary>
            A dictionary of parameters that are used for the different PropRules that Inherit from <see cref="T:Habanero.BO.PropRuleBase"/>
            e.g. values of 'min' or 'max' for that particular rule.
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleBase.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new property rule
            </summary>
            <param name="name">The name of the rule</param>
            <param name="message">This rule's failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleBase.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="M:Habanero.BO.PropRuleBase.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleBase.GetBaseErrorMessage(System.Object,System.String)">
            <summary>
            Returns the base error message that can be used by sub classes of PropRuleBase.
            </summary>
            <param name="propValue">The value that has cuased the broken rule.</param>
            <param name="displayName">The display name of the property that the business rule is broken for.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.PropRuleBase.SetParameter(System.String,System.Object)">
            <summary>
             Set a value for any named parameter
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
        </member>
        <member name="P:Habanero.BO.PropRuleBase.Parameters">
            <summary>
            Returns the list of parameters to the rule - individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleBase.Name">
            <summary>
            Returns the rule name
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleBase.Message">
            <summary>
            Returns the error message for if the rule fails.
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleString.#ctor(System.String,System.String,System.Int32,System.Int32,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minLength">The minimum length required for the string</param>
            <param name="maxLength">The maximum length allowed for the string</param>
            <param name="patternMatch">The pattern match as a regular
            expression that the string must conform to.  See 
            System.Text.RegularExpressions for more information on regular
            expression formatting.</param>
        </member>
        <member name="M:Habanero.BO.PropRuleString.#ctor(System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minLength">The minimum length required for the string</param>
            <param name="maxLength">The maximum length allowed for the string</param>
            <param name="patternMatch">The pattern match as a regular expression that the string must conform to.  
            See System.Text.RegularExpressions for more information on regular expression formatting.</param>
            <param name="patternMatchMessage">This message will be used when the Pattern Match rule has failed.</param>
        </member>
        <member name="M:Habanero.BO.PropRuleString.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleString.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="M:Habanero.BO.PropRuleString.CheckPatternMatchRule(System.String,System.Object,System.String@)">
            <summary>
            Checks if the value matches the pattern set required. If no
            expression was specified, then the method will return true
            </summary>
            <param name="propName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="M:Habanero.BO.PropRuleString.CheckLengthRule(System.String,System.Object,System.String@)">
            <summary>
            Checks that the string length falls within the length range
            specified
            </summary>
            <param name="propName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleString.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleString.MaxLength">
            <summary>
            Returns the maximum length the string can be
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleString.MinLength">
            <summary>
            Returns the minimum length the string can be
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleString.PatternMatch">
            <summary>
            Returns the pattern match regular expression for the string
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleString.PatternMatchMessage">
            <summary>
            Returns the pattern match error message which is displayed if the pattern match fails.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.DtdLoader">
            <summary>
            Loads document type definitions (dtd's)
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.DtdLoader.#ctor">
            <summary>
             Constructs the DataTypeLoader.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.DtdLoader.#ctor(Habanero.Base.ITextFileLoader,System.String)">
            <summary>
            Constructor to initialise a new loader with a specific text file 
            loader and a dtd path
            </summary>
            <param name="textFileLoader">The text file loader</param>
            <param name="dtdPath">The dtd path</param>
        </member>
        <member name="M:Habanero.BO.Loaders.DtdLoader.LoadDtd(System.String)">
            <summary>
            Loads a dtd with the name provided.  If the dtd loader is loading from files it will append .dtd to the end of the name provided and
            attempt to open that file.
            </summary>
            <param name="dtdName">The dtd name</param>
            <returns>Returns a string containing the dtd</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.DtdLoader.LoadDtd(System.String,System.Collections.IList)">
            <summary>
            Loads a dtd from the file name provided
            </summary>
            <param name="fileName">The file name</param>
            <param name="alreadyIncludedFiles">A list of files already
            included</param>
            <returns>Returns a string containing the dtd</returns>
        </member>
        <member name="T:Habanero.BO.CriteriaManager.Expression">
            <summary>
            Expression implements IExpression to manage an expression
            linked to possible left and right expressions
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.#ctor(Habanero.Base.IExpression,Habanero.BO.CriteriaManager.SqlOperator,Habanero.Base.IExpression)">
            <summary>
            Constructor to create a new expression.  If this is part of a linked
            list of expressions that make up a complete expression, then the
            expressions to the left and/or right can also be specified.
            </summary>
            <param name="leftExpression">The left expression if available</param>
            <param name="expressionSqlOperator">The sql operator between expressions</param>
            <param name="rightExpression">The right expression if available</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.#ctor(System.String)">
            <summary>
            Private constructor to create a new expression using the
            expression string provided
            </summary>
            <param name="expressionString">The expression string</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.SetParameterSqlInfo(Habanero.Base.IParameterSqlInfo)">
            <summary>
            Copies across the parameterised sql info (see IParameterSqlInfo for
            more detail)
            </summary>
            <param name="info">The IParameterSqlInfo object</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.Clone">
            <summary>
             Creates and returns a copy of this IExpression instance.
            </summary>
            <returns>Returns a copy of this IExpression instance.</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.ExpressionString">
            <summary>
            Returns the full expression as a string, including left and right
            expressions, surrounded by round brackets.
            </summary>
            <returns>Returns the full expression string</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.SqlExpressionString(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Creates the full expression in sql format.
            See IExpression.SqlExpressionString for more detail on the
            format of the arguments.
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.CreateExpression(System.String)">
            <summary>
            Creates a new IExpression object using the expression string provided.
            </summary>
            <param name="expressionClause">The expression string</param>
            <returns>If the expression is a leaf object (it has no left and right
            expressions), then a Parameter object is returned, otherwise an
            Expression object is returned.</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Expression.AppendExpression(Habanero.Base.IExpression,Habanero.BO.CriteriaManager.SqlOperator,System.String)">
            <summary>
            Appends a given expression string to the end of a given expression,
            separated by the given sql operator.
            </summary>
            <param name="leftExpression">The expression object to append to</param>
            <param name="expressionSqlOperator">The sql operator</param>
            <param name="expressionClause">The new expression clause</param>
            <returns>Returns the full expression object with the newly
            attached expression</returns>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.Expression.LeftExpression">
            <summary>
             The IExpression representing the left part of this expression
            </summary>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.Expression.SqlOperator">
            <summary>
             The SqlOperator representing the operator for this expression
            </summary>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.Expression.RightExpression">
            <summary>
             The IExpression representing the right part of this expression
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.SingleRelationshipDef">
            <summary>
            Defines a relationship where the owner relates to only one other object.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.RelationshipDef">
            <summary>
            Defines the relationship between the ownming Business Object (<see cref="T:Habanero.Base.IBusinessObject"/> and the 
            related Business Object.
            This class collaborates with the <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.RelKeyDef"/>, the <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> 
              to provide a definition Relationship. This class along with the <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.RelKeyDef"/> and 
              <see cref="T:Habanero.BO.ClassDefinition.RelPropDef"/> provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            The RelationshipDef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelationshipDef (Relationship Definition) is used bay a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> to define a particular
              relationship. Each relationship has a relationship name e.g. A relationship betwee a person and a department may
              manager, employee etc. The related Class e.g. A Department definition would contain a relationship definition to
              a Person Class. (to allow for the person class to be in a different assemply the assembly name is also stored.
              The list of properties the define the Foreign key mapping of relationship between these two classes is stored using
              the <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.RelKeyDef"/>. The Relationship also stores additional information such as <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.DeleteParentAction"/>
              and order critieria. The <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.DeleteParentAction"/> defines any constraints that the relationship should provide 
              in the case of the parent (relationship owner e.g. Depertment in our example) being deleted. E.g. If the department (parent)
              is being deleted you may want to delete all related object or prevent delete if there are any related objects.
              In cases where there are many related objects e.g. A Department can have many Employees the relationship may be required to 
              load in a specifically order e.g. by employee number. The order criteria is used for this.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDef.#ctor(System.String,System.Type,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction)">
            <summary>
            Constructor to create a new relationship definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectClassType">The class type of the related object</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="deleteParentAction">The required action when the parent is deleted e.g. Dereference related, delete related, prevent delete</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDef.#ctor(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType)">
             <summary>
             Constructor to create a new relationship definition
             </summary>
             <param name="relationshipName">A name for the relationship</param>
             <param name="relatedObjectAssemblyName">The assembly that the related object is in</param>
             <param name="relatedObjectClassName">The class type of the related object</param>
             <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
             reference to the related object.  Could be false for memory-
             intensive applications.</param>
            <param name="deleteParentAction">The required action when the parent is deleted e.g. Dereference related, delete related, prevent delete</param>
             <param name="insertParentAction"><see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.InsertParentAction"/></param>
             <param name="relationshipType"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDef.CreateRelationship(Habanero.Base.IBusinessObject,Habanero.Base.IBOPropCol)">
            <summary>
            Create and return a new Relationship based on the relationship definition.
            </summary>
            <param name="owningBo">The business object that owns
            this relationship e.g. The department</param>
            <param name="lBOPropCol">The collection of properties of the Business object</param>
            <returns>The new relationship object created</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDef.CheckCanAddChild(Habanero.Base.IBusinessObject)">
            <summary>
             Can the child business object be added to this relationship. Typically a persisted child business object 
             cannot be added to a compositional relationship. A new (i.e. unpersisted) child object can however be.
            </summary>
            <param name="bo"></param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"></exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDef.CheckCanRemoveChild(Habanero.Base.IBusinessObject)">
            <summary>
             Checks to see whether a business object can be removed from the relationship. Typically a
               business object cannot be removed from the relationship if the relationship is composition.
            </summary>
            <param name="bo">The business object being removed</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"></exception>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.IsCompulsory">
            <summary>
            Returns true if this RelationshipDef is compulsory.
            This relationship def will be considered to be compulsory if this
            <see cref="P:Habanero.Base.IRelationshipDef.OwningBOHasForeignKey"/> and all the <see cref="T:Habanero.Base.IPropDef"/>'s that make up the 
            <see cref="T:Habanero.Base.IRelKeyDef"/> are compulsory. This is only relevant for ManyToOne and OneToOne Relationships.
            I.e. to single Relationships
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.OwningClassDef">
            <summary>
             Gets and Sets the Class Def to the ClassDefinition that owns this Relationship Def.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelationshipName">
            <summary>
            A name for the relationship e.g. Employee, Manager.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelatedObjectAssemblyName">
            <summary>
            The assembly name of the related object type. In cases where the related object is in a different assebly
            the object will be constructed via reflection.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelatedObjectClassName">
            <summary>
            The class name of the related object type.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelatedObjectClassType">
            <summary>
            The class type of the related object
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelKeyDef">
            <summary>
            The related key definition. <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.RelKeyDef"/>
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.KeepReferenceToRelatedObject">
            <summary>
            Whether to keep a reference to the related object or to reload every time the relationship is called.
            Could be false for memory-intensive applications.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelatedObjectClassDef">
            <summary>
            The <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> for the related object.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelatedObjectTypeParameter">
            <summary>
            The type parameter of the related object type.  This allows you to relate a class with another one that is
            type parametrised (ie has multiple classdefs for one .net type)
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.DeleteParentAction">
            <summary>
            Provides specific instructions with regards to deleting a parent
            object.  See the <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.DeleteParentAction"/> enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.InsertParentAction">
            <summary>
             Provides the specific instruction when a new object is added to an association relationship.
             See <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.InsertParentAction"/> enumeration for more details
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.OrderCriteria">
            <summary>
             The order by clause that the related object will be sorted by.
             In the case of a single relationship this will return a null string
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.OrderCriteriaString">
            <summary>
             The order by clause that the related object will be sorted by.
             In the case of a single relationship this will return a null string
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.RelationshipType">
            <summary>
             Returns the specific action that the relationship must carry out in the case of a child being added to it.
             <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.RelationshipType"/>
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.OwningBOHasForeignKey">
            <summary>
             Returns true where the owning business object has the foreign key for this relationship false otherwise.
             This is used to differentiate between the two sides of the relationship.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.ReverseRelationshipName">
            <summary>
             Returns the relationship name of the reverse relationship.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.OwningBOHasPrimaryKey">
            <summary>
             Does this relationship link between the Primary Key of its owningBO and a foreign key of its related BO.
             In most cases this will be the reverse of <see cref="P:Habanero.BO.ClassDefinition.RelationshipDef.OwningBOHasForeignKey"/>
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.TimeOut">
            <summary>
            The timout in milliseconds. 
            The collection of Business Objects will not be automatically refreshed 
            from the DB if the timeout has not expired
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.IsOneToMany">
            <summary>
             Returns true if this is a Multiple Relationship and the Reverse is a single relationship
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.IsManyToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Multiple relationship
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDef.IsOneToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Single relationship
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.#ctor(System.String,System.Type,Habanero.BO.ClassDefinition.RelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction)">
            <summary>
            Constructor to create a new single relationship definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectClassType">The class type of the related object</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="deleteParentAction"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.#ctor(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction)">
            <summary>
            Constructor to create a new single relationship definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectAssemblyName">The assembly name of the related object</param>
            <param name="relatedObjectClassName">The class name of the related object</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="deleteParentAction"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.#ctor(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType)">
            <summary>
             Constructs a single Relationship
            </summary>
            <param name="relationshipName"></param>
            <param name="relatedObjectAssemblyName"></param>
            <param name="relatedObjectClassName"></param>
            <param name="relKeyDef"></param>
            <param name="keepReferenceToRelatedObject"></param>
            <param name="deleteParentAction"></param>
            <param name="insertParentAction"><see cref="T:Habanero.Base.InsertParentAction"/></param>
            <param name="relationshipType"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.CreateRelationship(Habanero.Base.IBusinessObject,Habanero.Base.IBOPropCol)">
            <summary>
            Overrides abstract method of RelationshipDef to create a new
            relationship
            </summary>
            <param name="owningBo">The business object that will manage
            this relationship</param>
            <param name="lBOPropCol">The collection of properties</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.SetAsOneToOne">
            <summary>
            Sets this SingleRelationshipDef as a One To One.
            This overrides the default of it being set to ManyToOne.
            This is used by the Reflective ClassDefLoaders in Habanero.Smooth 
            to load ClassDefinitions based on the BusinessObject. 
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.SetAsCompulsory">
            <summary>
            Sets the single relationship as compulsory.
            If this is set to true then the relationship is treated as compulsory 
            else it uses the algorithm of Checking that all the ForeignKey Props are compulsory.
            This is primarily used by the Reflective ClassDefLoaders in Habanero.Smooth
            to load ClassDefinitions based on the BusinessObject.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SingleRelationshipDef.AreAllPropsCompulsory">
            <summary>
            Returns true if this RelationshipDef is compulsory.
            This relationship def will be considered to be compulsory if this
            <see cref="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.OwningBOHasForeignKey"/> and all the <see cref="T:Habanero.Base.IPropDef"/>'s that make up the 
            <see cref="T:Habanero.Base.IRelKeyDef"/> are compulsory
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.OwningBOHasForeignKey">
            <summary>
             Returns true where the owning business object has the foreign key for this relationship false otherwise.
             This is used to differentiate between the two sides of a One to One relationship in all other cases this can be
             determined based on the Cardinality.
             This is usually set as part of loading the ClassDefinitions.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.IsOneToMany">
            <summary>
             Returns true if this is a Multiple Relationship and the Reverse is a single relationship
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.IsManyToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Multiple relationship
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.IsOneToOne">
            <summary>
             Returns true if this is a Single Relationship and the Reverse is a Single relationship
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SingleRelationshipDef.IsCompulsory">
            <summary>
            Returns true if this RelationshipDef is compulsory.
            This relationship def will be considered to be compulsory if this
            <see cref="P:Habanero.Base.IRelationshipDef.OwningBOHasForeignKey"/> and all the <see cref="T:Habanero.Base.IPropDef"/>'s that make up the 
            <see cref="T:Habanero.Base.IRelKeyDef"/> are compulsory. This is only relevant for ManyToOne and OneToOne Relationships.
            I.e. to single Relationships
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.PrimaryKeyDef">
            <summary>
            Manages the definition of the primary key in a for a particular Business Object (e.g. Customer).
            The Primary Key Definition defins the properties of the object that are used to map the business object
             to the database. The Primary key def is a mapping that is used to implement the 
             Identity Field (216) Pattern (Fowler - 'Patterns of Enterprise Application Architecture')
            
            In most cases the PrimaryKeyDefinition will only have one property definition and this property definition 
             will be for an immutable property. In the ideal case this property definition will
             represent a property that is globally unique. In these cases the primaryKeyDef will have the flag mIsGUIDObjectID set to true. 
             However we have in many cases had to extend or replace existing systems
             that use mutable composite keys to identify objects in the database. The primary key definition allows you to define
             all of these scenarious.
            The Application developer should not usually deal with this class since it is usually created based on the class definition modelled
              and stored in the ClassDef.Xml <see cref="T:Habanero.BO.Loaders.XmlPrimaryKeyLoader"/>.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.KeyDef">
            <summary>
            The KeyDef is a definition of a Business Objects key.
            It is essentially a key name and a collection of property 
            definitions that place certain limitations on the data
            that the key can hold.  The property definitions can also relate
            together in some way (e.g. for a composite/compound alternate 
            key, the combination of properties is required to be unique).
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.KeyDef._ignoreIfNull">
            <summary>
            Ignore the Alternate Key constraint if one or more of the properties has a null value.
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.KeyDef._keyName">
            <summary>
            The Name of the Alternate Key.
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.KeyDef._keyNameBuilt">
            <summary>
            The built key name
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.KeyDef._buildKeyName">
             <summary>
             this is a flag used to 
            indicate whether the the keyname should be built up 
            from the property names or not
             </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.#ctor">
            <summary>
            A deparameterised constructor that causes the keyName to be
            set as a concatenation of the PropDef.PropertyNames separated
            by an underscore.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.#ctor(System.String)">
            <summary>
            Constructor that initialises the object with the name
            of the key.
            </summary>
            <param name="keyName">The name of the key.  If the name is
            null or a zero-length string, then the keyName will be 
            a concatenation of the PropDef.PropertyNames separated by
            an underscore.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.Add(Habanero.Base.IPropDef)">
            <summary>
            Adds a property definition to the collection of definitions.
            The object to be added cannot be null.  If a key name was not
            originally provided at instantiation of the key definition, then
            the new property definition's name will be appended to the key name.
            </summary>
            <param name="propDef">The PropDef object to add</param>
            <exeption cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Will throw an exception
            if the argument is null</exeption>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.Remove(Habanero.BO.ClassDefinition.PropDef)">
            <summary>
            Removes a Property definition from the key
            </summary>
            <param name="propDef">The Property Definition to remove</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.Contains(Habanero.Base.IPropDef)">
            <summary>
            Indicates if the specified property definition exists
            in the key.
            </summary>
            <param name="propDef">The Property definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.Contains(System.String)">
            <summary>
            Returns true if the key definition holds a property definition
            with the name provided.
            </summary>
            <param name="propName">The property name in question</param>
            <returns>Returns true if found or false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.Clear">
            <summary>
            Clears all the properties set for this <see cref="T:Habanero.BO.ClassDefinition.KeyDef"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.IsValid">
            <summary>
            Indicates whether the key definition is valid based on
            whether it contains one or more properties. 
            I.e. The key is not valid if it does not contain any properties.
            </summary>
            <returns>Returns true if so, or false if no properties are
            stored</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.CreateBOKey(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new business object key (BOKey) using this key
            definition and its property definitions
            </summary>
            <param name="lBOPropCol">The master property collection</param>
            <returns>Returns a new BOKey object that mirrors this
            key definition</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.KeyDef.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.IgnoreIfNull">
            <summary>
            A method used by BOKey to determine whether to check for
            duplicate keys.  If true, then the uniqueness check will be ignored
            if any of the properties making up the key are null.<br/>
            NNB: If the BOKey is a primary key, then this cannot be
            set to true.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.KeyName">
            <summary>
            Returns the key name for this key definition - this key name is built
            up through a combination of the key name and the property names
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.Message">
            <summary>
            Gets and sets the message to show to the user if a key validation
            fails.  A default message will be provided if this is null.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection of property
            definitions that belong to the key, so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the property stored under that property name</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.Item(System.Int32)">
            <summary>
            Provides an indexing facility for the collection of property
            definitions that belong to the key, so that items
            in the collection can be accessed like an array. The order is
            always the same, but not determinable
            </summary>
            <param name="index">The index of the property</param>
            <returns>Returns the property stored under that index</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.KeyDef.Count">
            <summary>
            Returns a count of the number of property definitions held
            in this key definition
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PrimaryKeyDef.#ctor">
            <summary>
            Constructor to create a new primary key definition
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PrimaryKeyDef.Add(Habanero.Base.IPropDef)">
            <summary>
            Adds a property definition to this key
            </summary>
            <param name="propDef">The property definition to add</param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyException">Thrown if the primary key definition is marked as and object id but more than one 
            property definition is being added</exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PrimaryKeyDef.CreateBOKey(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new business object key (BOKey) using this key
            definition and its property definitions. Creates either a new
            BOObjectID object (if the primary key is the object's ID) 
            or a BOPrimaryKey object.
            </summary>
            <param name="lBOPropCol">The master property collection</param>
            <returns>Returns a new BOKey object that mirrors this
            key definition</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PrimaryKeyDef.IsGuidObjectID">
            <summary>
            Returns true if the primary key is a propery the object's ID, that is,
            the primary key is a single discrete property that is an immutable Guid and serves as the ID.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PrimaryKeyDef.IgnoreIfNull">
            <summary>
            This overridden method will always return false and will prevent the
            value being set to true, since primary keys cannot have null
            properties.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PrimaryKeyDef.IsCompositeKey">
            <summary>
             Returns true if the primary key is a composite Key (i.e. if it consists of more than one property)
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.ClassDef">
            <summary>
            Defines the business object class <see cref="T:Habanero.Base.IBusinessObject"/>, 
              its properties <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PropDefcol"/>,
              their related property rules <see cref="T:Habanero.Base.IPropRule"/>,
              its Primary and Alternate keys <see cref="T:Habanero.Base.IPrimaryKey"/> <see cref="T:Habanero.Base.IBOKey"/>, 
              its relationships <see cref="T:Habanero.Base.IRelationship"/>,
              any inheritance relationships
              and the mappings of the <see cref="T:Habanero.Base.IBusinessObject"/> to the user inteface.
            <br/>
            The Definition includes the mapping of the <see cref="T:Habanero.Base.IBusinessObject"/> 
              its properties and its relationships to the Database tables and fields.
            <br/>
            The Class Definition (ClassDef) is loaded from the ClassDef.xml file at application startup.
            <br/>
            The Class Definition class along with the ClassDef.xml implements the pattern
              MetaData Mapper (Fowler - (306) 'Patterns of Enterprise Application Architecture').
            <br/>
            Required data is:
            <ul>
            <li>The primary key, which is the object identifier that uniquely
                identifies the object in the database and object manager.
                _Note that under Object-Oriented development philosophy, this
                key is universally unique and should be indepedendent of the
                values of the object, which differs somewhat from relational
                database design.  However, the architecture has been extended
                to support traditional composite keys in order to accomodate
                some clients' requirements.</li>
            <li>All the properties and property types of the object that must
                be recovered or persisted to the database.</li>
            <li>All the relationships of the object which it must manage.</li>
            </ul>
            </summary>
            <remarks>
            Design Notes:
            <ol>
            <li>To improve maintenance of the solution, a class definition
               was chosen to hold the definitions of a class, rather than
               having each class implement a ClassDefinition interface.
               The ClassDef and BusinessObject work together to implement
               functionality of a Business object.</li>
            </ol>
            </remarks>
            <futureEnhancements>
            TODO_Future:
            <ul>
            <li>Add abiltiy to do transaction log definition in class defs.</li>
            <li>Check for potential duplicates e.g. duplicate email addresses,
             which should warn but not prevent.</li>
            </ul>
            </futureEnhancements>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.Type,Habanero.Base.IPrimaryKeyDef,System.String,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol)">
            <summary>
            Constructor to create a new class definition object
            </summary>
            <param name="classType">The type of the class definition</param>
            <param name="primaryKeyDef">The primary key definition</param>
            <param name="tableName">The name of the table</param>
            <param name="propDefCol">The collection of property definitions</param>
            <param name="keyDefCol">The collection of key definitions</param>
            <param name="relationshipDefCol">The collection of relationship definitions</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.Type,Habanero.Base.IPrimaryKeyDef,System.String,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            Constructor to create a new class definition object
            </summary>
            <param name="classType">The type of the class definition</param>
            <param name="primaryKeyDef">The primary key definition</param>
            <param name="tableName">The name of the table</param>
            <param name="propDefCol">The collection of property definitions</param>
            <param name="keyDefCol">The collection of key definitions</param>
            <param name="relationshipDefCol">The collection of relationship definitions</param>
            <param name="uiDefCol">The collection of user interface definitions</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.Type,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            As before, but excludes the table name
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.Type,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol)">
            <summary>
            As before, but excludes the table name and UI def collection
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.String,System.String,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            As before, but excludes the table name
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.#ctor(System.String,System.String,System.String,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            As before, but excludes the table name
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.IsDefined(System.Type)">
            <summary>
            Indicates whether the specified class type is amongst those
            contained in the class definition collection
            </summary>
            <param name="classType">The class type in question</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.CreateNewBusinessObject">
            <summary>
            Creates a new business object using the default class definition for the type linked to this <see cref="T:Habanero.Base.IClassDef"/>
            or using this particular class definition (in the case where you might have more than one class definition for one C#
            type, useful for user defined types).  If this <see cref="T:Habanero.Base.IClassDef"/> has a <see cref="P:Habanero.Base.IClassDef.TypeParameter"/> then
            the instantiation will happen with the <see cref="T:Habanero.Base.IClassDef"/> passed in as a parameter to the <see cref="T:Habanero.Base.IBusinessObject"/>
            constructor.
            Note_ that this means the business object being created must have a constructor that takes a <see cref="T:Habanero.Base.IClassDef"/>,
            passing this through to the base class as follows:
            <code>
            public class Entity
            {
               public Entity() {}
               public Entity(ClassDef def): base(def) { }
            }
            </code>
            </summary>
            <returns>Returns the new object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.CreateBOPropertyCol(System.Boolean)">
            <summary>
            Creates a collection of BO properties
            </summary>
            <param name="newObject">Whether the BOProp object being created 
            is a new object or is being 
            loaded from the DB. If it is new, then the property is
            initialised with the default value.</param>
            <returns>Returns the collection of BOProps</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.InstantiateBusinessObject(System.Boolean)">
            <summary>
            Creates a new business object
            </summary>
            <returns>Returns a new business object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.CreateRelationshipCol(Habanero.Base.IBOPropCol,Habanero.Base.IBusinessObject)">
            <summary>
            Creates a new collection of relationships.
            </summary>
            <param name="propCol">The collection of properties</param>
            <param name="bo">The business object that owns this collection</param>
            <returns>Returns the new collection or null if no relationship 
            definition collection exists</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.CreateBOKeyCol(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new collection of BO keys using the properties provided
            </summary>
            <param name="col">The collection of properties</param>
            <returns>Returns the new key collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.IsUsingClassTableInheritance">
            <summary>
            Indicates whether ClassTableInheritance is being used. See
            the ORMapping enumeration for more detail.
            </summary>
            <returns>Returns true if so, or false if there is no
            super class or another type of inheritance is being used</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.IsUsingConcreteTableInheritance">
            <summary>
            Indicates whether ConcreteTableInheritance is being used. See
            the ORMapping enumeration for more detail.
            </summary>
            <returns>Returns true if so, or false if there is no
            super class or another type of inheritance is being used</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.IsUsingSingleTableInheritance">
            <summary>
            Indicates whether SingleTableInheritance is being used. See
            the ORMapping enumeration for more detail.
            </summary>
            <returns>Returns true if so, or false if there is no
            super class or another type of inheritance is being used</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetAllClassDefsInHierarchy">
            <summary>
            Creates a list of classdefs in this inheritance hierarchy.  The first item in the list is this classdef,
            followed by the one higher up the hierarchy (ie, this classdef's base or super class), followed by that
            one's base/super class and so on.
            </summary>
            <returns>The list of classdefs in order from lowest to highest in the hierarchy.</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetLookupList(System.String)">
            <summary>
            Searches the property definition collection and returns 
            the lookup-list found under the property with the
            name specified.  Also checks the super-class.
            </summary>
            <param name="propertyName">The property name in question</param>
            <returns>Returns the lookup-list if the property is
            found, or a NullLookupList object if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetPropDef(Habanero.Base.Source,System.String,System.Boolean)">
            <summary>
             Returns a particular property definition for a class definition.
            </summary>
            <param name="source"></param>
            <param name="propertyName"></param>
            <param name="throwError"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetRelationship(System.String)">
            <summary>
            Searches the relationship definition collection and returns 
            the relationship definition found under the
            relationship with the name specified.
            This searches through all the entire inheritance Hierachy i.e. all the
            superclasses relationships are also searched for.
            </summary>
            <param name="relationshipName">The relationship name in question</param>
            <returns>Returns the relationship definition if found, 
            or null if not found</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetUIDef(System.String)">
            <summary>
            Searches the UI definition collection and returns 
            the UI definition found under the UI with the name specified.
            </summary>
            <param name="uiDefName">The UI name in question</param>
            <returns>Returns the UI definition if found, or null if not found</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />. </param>
            <exception cref="T:System.NullReferenceException">The <paramref name="obj" /> parameter is null.</exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.Equals(Habanero.BO.ClassDefinition.ClassDef)">
            <summary>
            Checks for equality between two classdefs. This checks that the properties
            are the same between the two.
            </summary>
            <param name="otherClsDef">The Class Def to be compared to</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetPropertyType(System.String)">
            <summary>
             Gets the type of the specified property for this classDef.
             The specified property can also have a format like the custom properties for a UiGridColumn or UiFormField def.
             eg: MyRelatedBo.MyFurtherRelatedBo|MyAlternateRelatedBo.Name
            </summary>
            <param name="propertyName">The property to get the type for.</param>
            <returns>The type of the specified property</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetPropDef(System.String)">
            <summary>
            Searches the property definition collection and returns the 
            property definition for the property with the name provided.
            </summary>
            <param name="propertyName">The property name in question</param>
            <returns>Returns the property definition if found, or
            throws an error if not</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException">
            This exception is thrown if the property is not found</exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetPropDef(System.String,System.Boolean)">
            <summary>
            Searches the property definition collection and returns the 
            property definition for the property with the name provided.
            </summary>
            <param name="propertyName">The property name in question</param>
            <param name="throwError">Should an error be thrown if the property is not found</param>
            <returns>Returns the property definition if found, or
            throw an error if <paramref name="throwError"/> is true,
            otherwise return null</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException">
            This exception is thrown if the property is not found and 
            <paramref name="throwError"/> is true</exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.CreatePropertyComparer``1(System.String)">
            <summary>
             Creates a property comparer for the given property
             The specified property can also have a format like the custom properties 
             for a UiGridColumn or UiFormField def.
             eg: MyRelatedBo.MyFurtherRelatedBo|MyAlternateRelatedBo.Name
            </summary>
            <param name="propertyName">The property to get the type for.</param>
            <returns>The type of the specified property</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetTableName">
            <summary>
            Returns the table name for this class
            </summary>
            <returns>Returns the table name of first real table for this class.</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetTableName(Habanero.Base.IPropDef)">
            <summary>
            Returns the table name of the specified property
            </summary>
            <param name="propDef">The property to fine the table name for</param>
            <returns>Returns the table name of the table that the specified property belongs to</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.Clone">
            <summary>
             Does a deep clone of the classdef and return the clone.
             NNB: The new propdefcol has the same propdefs in it (i.e. the propdefs are not copied)
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.Clone(System.Boolean)">
            <summary>
             Does a deep clone of the classdef and return the clone.
             NNB: The new propdefcol has the same propdefs in it (i.e. the propdefs are not copied)
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.GetBaseClassOfSingleTableHierarchy">
            <summary>
             traverses the inheritance hierachy to find the base class of this type in the case 
             of single table inheritance.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDef.Get``1">
            <summary>
             Returns the Class Definition for a <see cref="T:Habanero.Base.IBusinessObject"/> of type T.
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.DisplayName">
            <summary>
             The display name for the class
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.InheritedTableName">
            <summary>
            The name of the table where single table inheritance
            is being used in the table name is being inherited from
            some parent
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.KeysCol">
            <summary>
            The collection of key definitions
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef">
            <summary>
            The primary key definition for this class definition.
            Retrieves the primary key definition for this class, traversing 
            the SuperClass structure to get the primary key definition if necessary
             </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.HasObjectID">
            <summary>
            Indicates if the primary key of this class is an ObjectID, that is,
            the primary key is a single discrete property that serves as the ID
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.UIDefCol">
            <summary>
            The collection of user interface definitions
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.AssemblyName">
            <summary>
            The name of the assembly for the class definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassName">
            <summary>
            The name of the class type for the class definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassNameExcludingTypeParameter">
            <summary>
            The name of the class type for the class definition (excluding the namespace and the type parameter).
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassNameFull">
            <summary>
            The possibly full name of the class type for the class definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassType">
            <summary>
            The type of the class definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.TableName">
            <summary>
            The name of the table
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.PropDefcol">
            <summary>
            The collection of property definitions
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.PropDefColIncludingInheritance">
            <summary>
            The collection of property definitions for this
            class and any properties inherited from parent classes
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.TotalNoOfPropsIncludingInheritance">
            <summary>
            This is a bit of a Hack but you need to be able to deal with a situation
            where you call <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PropDefColIncludingInheritance"/> then add a prop
            to this class or any of its superclasses and then call
            <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PropDefColIncludingInheritance"/> again.
            You would expect to see the new PropDef added at the same time you
            do not want to do the recursive algorithm of building the PropDef list repeatedly
            since this is used by the GetPropDef method which is used intensively.
            This recursive method with adding all the properties is less intense.
            We also do not want to add events to the PropDefCol that can be fired every
            time a PropDef is added or removed since this would
             </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.RelationshipDefCol">
            <summary>
            The collection of relationship definitions
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassDefs">
            <summary>
            Returns the collection of class definitions of which this is
            a part
            </summary>
            <returns>Returns a ClassDefCol object</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.SuperClassDef">
            <summary>
            Gets and sets the super-class of this class definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.SuperClassClassDef">
            <summary>
            Returns the class definition of the super-class, or null
            if there is no super-class
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ImmediateChildren">
            <summary>
            Returns a collection of all the class defs that indicate a direct
            inheritance from this one
            </summary>
            <returns>Returns a ClassDefCol collection</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.AllChildren">
            <summary>
            Returns all children of this class based on the loaded inheritance hierachies
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.TypeParameter">
            <summary>
            This parameter can be used to allow multiple classdefs for one .NET type, as long as the
            type parameter between the classdefs are different.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.HasAutoIncrementingField">
            <summary>
            Returns whether this class has an autoincrementing field or not. Checks the propdefs for whether
            one of them is autoincrementing, returning true if this is the case.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.ClassID">
            <summary>
             The ClassID that identifies this Class in the case where the class is loaded from a database.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.ClassDef.Module">
            <summary>
             The module name that identifies this class for the case of building a menu for the standard menu editor.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlTriggerLoader">
            <summary>
            Loads UI form trigger information from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadTrigger(System.String)">
            <summary>
            Loads a form trigger definition from the xml string provided
            </summary>
            <param name="xmlUITrigger">The xml string</param>
            <returns>Returns a UIFormProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadTrigger(System.Xml.XmlElement)">
            <summary>
            Loads a form trigger definition from the xml element provided
            </summary>
            <param name="uiTriggerElement">The xml element</param>
            <returns>Returns a UIFormProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.Create">
            <summary>
            Creates a form trigger definition from the data already loaded
            </summary>
            <returns>Returns a Trigger object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadFromReader">
            <summary>
            Loads form trigger data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadTriggeredByAndTarget">
            <summary>
            Loads the triggeredBy source and the target and throws
            an exception if both are declared
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadConditionValue">
            <summary>
            Loads the condition value
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadAction">
            <summary>
            Loads the action (error checking is done at form construction time)
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlTriggerLoader.LoadValue">
            <summary>
            Loads the assignment value
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIFormField">
            <summary>
            Manages a property definition for a control in a user interface editing
            form, as specified in the class definitions xml file
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="label">The label</param>
            <param name="propertyName">The property name</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.#ctor(System.String,System.String,System.Type,System.String,System.String,System.Boolean,System.String,System.Collections.Hashtable,Habanero.BO.ClassDefinition.LayoutStyle)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="label">The label</param>
            <param name="propertyName">The property name</param>
            <param name="controlType">The control type</param>
            <param name="mapperTypeName">The mapper type name</param>
            <param name="mapperAssembly">The mapper assembly</param>
            <param name="editable">Whether the control is editable or not</param>
            <param name="toolTipText">The tool tip text to be used.</param>
            <param name="parameters">The property attributes</param>
            <param name="layout">The <see cref="T:Habanero.BO.ClassDefinition.LayoutStyle"/> to use</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.#ctor(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Nullable{System.Boolean},System.String,System.Collections.Hashtable,Habanero.BO.ClassDefinition.LayoutStyle)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="label">The label</param>
            <param name="propertyName">The property name</param>
            <param name="controlTypeName">The control type name</param>
            <param name="controlAssembly">The control assembly</param>
            <param name="mapperTypeName">The mapper type name</param>
            <param name="mapperAssembly">The mapper assembly</param>
            <param name="editable">Whether the control is editable or not</param>
            <param name="showAsComulsory"></param>
            <param name="toolTipText">The tool tip text to be used.</param>
            <param name="parameters">The property attributes</param>
            <param name="layout">The <see cref="T:Habanero.BO.ClassDefinition.LayoutStyle"/> to use</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.#ctor(System.String,System.String,System.Type,System.String,System.String,System.String,System.String,System.Boolean,System.Nullable{System.Boolean},System.String,System.Collections.Hashtable,Habanero.BO.ClassDefinition.LayoutStyle)">
            <summary>
            The master constructor for all of the possible arguments
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetPropDefIfExists(Habanero.Base.IClassDef)">
            <summary>
             Gets the property definition for the property that this field refers to.
             This property could be on a related object. If the property is not found, then 
             nul is returned.
            </summary>
            <param name="classDef">The class definition that this field is for.</param>
            <returns>The property definition that is refered to, otherwise null. </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetToolTipText">
            <summary>
             Gets the text that will be shown in the tool tip for the control.
            </summary>
             <returns> The text that will be used for the tool tip for this control. </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetToolTipText(Habanero.Base.IClassDef)">
            <summary>
             Gets the text that will be shown in the tool tip for the control given a classDef.
            </summary>
            <param name="classDef">The class definition that corresponds to this form field. </param>
             <returns> The text that will be used for the tool tip for this control. </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetLabel">
            <summary>
             Gets the label for this form field.
            </summary>
            <returns> The label for this form field </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetLabel(Habanero.Base.IClassDef)">
            <summary>
             Gets the label for this form field given a classDef.
            </summary>
            <param name="classDef">The class definition that corresponds to this form field. </param>
            <returns> The label for this form field </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetHashCode">
            <summary>
            Hashcode for the UIFormField
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.op_Equality(Habanero.BO.ClassDefinition.UIFormField,Habanero.BO.ClassDefinition.UIFormField)">
            <summary>
            Indicates whether two fields are equal
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.op_Inequality(Habanero.BO.ClassDefinition.UIFormField,Habanero.BO.ClassDefinition.UIFormField)">
            <summary>
            Indicates whether two fields are unequal
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetParameterValue(System.String)">
            <summary>
            Returns the parameter value for the name provided
            </summary>
            <param name="parameterName">The parameter name</param>
            <returns>Returns the parameter value or null if not found</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.HasParameterValue(System.String)">
            <summary>
             Returns true if the UIFormField has a paramter value.
            </summary>
            <param name="parameterName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormField.GetClassDef">
            <summary>
             Returns the <see cref="T:Habanero.Base.IClassDef"/> associated with this UIFormField
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Label">
            <summary>
            Returns the label
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.PropertyName">
            <summary>
            Returns the property name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.MapperTypeName">
            <summary>
            Returns the mapper type name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.MapperAssembly">
            <summary>
             Returns the mapper assembly
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ControlAssemblyName">
            <summary>
            The name of the property type assembly
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ControlTypeName">
            <summary>
            The name of the control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ControlType">
            <summary>
            Returns the control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ShowAsCompulsory">
            <summary>
            Must the Field Show Itself as Compulsory or not
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Editable">
            <summary>
            Indicates whether the control is editable
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ToolTipText">
            <summary>
             Returns the text that will be shown in the Tool Tip for the control.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Parameters">
            <summary>
            Returns the Hashtable containing the property attributes
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.RowSpan">
            <summary>
             How many rows the Field must span.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException"></exception>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.ColSpan">
            <summary>
             How many columns the field must span
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.IsCompulsory">
            <summary>
             Is the field compulsory (i.e. must it be shown as compulsory on the form or not)
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.KeepValuePrivate">
            <summary>
            Returns true if the Value must be kept private (i.e. this will be masked by a Password text box.)
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.UIFormColumn">
            <summary>
             The <see cref="P:Habanero.BO.ClassDefinition.UIFormField.UIFormColumn"/> that this form field is to be placed in.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Alignment">
            <summary>
             Returns the alignment property of the form field or null if none is provided
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.DecimalPlaces">
            <summary>
             Returns the decimalPlaces property from the form field or null if none is provided
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Options">
            <summary>
             Returns the Options property from the form field or null if none is provided.
             The Options are a set of strings seperated by a '|'
             This can be used as the list of options shown in a combo box.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.IsEmail">
            <summary>
             Returns the IsEmail property from the form field or null if none is provided
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.DateFormat">
            <summary>
             Returns the DateFormat property from the form field or null if none is provided
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormField.Layout">
            <summary>
             The <see cref="T:Habanero.BO.ClassDefinition.LayoutStyle"/> to be used for this form field.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIFormColumn">
            <summary>
            Holds the property definitions for a column of controls in a user 
            interface editing form, as specified in the class definitions
            xml file
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.#ctor">
            <summary>
            Constructor to initialise a new column definition
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.#ctor(Habanero.BO.ClassDefinition.UIFormField[])">
            <summary>
            Construct the UIFormColumn with its UIFormFields
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.#ctor(System.Int32)">
            <summary>
            Constructor to initialise a new column definition with the
            specified width
            </summary>
            <param name="width">The column width</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Add(Habanero.Base.IUIFormField)">
            <summary>
            Adds a form field to the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Remove(Habanero.Base.IUIFormField)">
            <summary>
            Removes a form field from the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Contains(Habanero.Base.IUIFormField)">
            <summary>
            Checks if a form field is in the definition
            </summary>
            <param name="field">A form field definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.GetEnumerator">
            <summary>
            Returns the definition list's enumerator
            </summary>
            <returns>Returns an IEnumerator-type object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the collection to an Array, 
            starting at a particular Array index
            </summary>
            <param name="array">The array to copy to</param>
            <param name="index">The zero-based index position to start
            copying from</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Clone">
            <summary>
             Clones the collection.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.op_Equality(Habanero.BO.ClassDefinition.UIFormColumn,Habanero.BO.ClassDefinition.UIFormColumn)">
            <summary>
            Indicates whether to columns are equal
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.op_Inequality(Habanero.BO.ClassDefinition.UIFormColumn,Habanero.BO.ClassDefinition.UIFormColumn)">
            <summary>
            Indicates whether two columns are unequal
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.GetRowsRequired">
            <summary>
             Returns the Number of rows required to draw this UIFormColumn
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.GetRowSpanForColumnToTheRight(System.Int32)">
            <summary>
             Returns the Row span of the column to the right of this UIcolumn
            </summary>
            <param name="columnsRight"></param>
            <returns></returns>
            <exception cref="T:System.ArgumentException"></exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Equals(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            
            </summary>
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormColumn.Insert(System.Int32,Habanero.Base.IUIFormField)">
            <summary>
             Inserts a formField. at the specified index.
             If Index Less than or equal to zero then the form field wil be inserted at the first postion
             If the index is greater than the Count of the list then it will be inserted at the last position.
            </summary>
            <param name="index">The position at which the formField should be inserted</param>
            <param name="formField">The FormField to be iserted.</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.Count">
            <summary>
            Returns the number of property definitions held
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.SyncRoot">
            <summary>
            Returns the synchronisation root
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.IsSynchronized">
            <summary>
            Indicates whether the definitions are synchronised
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.Width">
            <summary>
            Gets and sets the column width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormColumn.UIFormTab">
            <summary>
             Returns the Form tab that this UIFormColumn is on.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.TriggerCol">
            <summary>
            Manages a collection of triggers assigned to a specific
            user interface control
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.TriggerCol.System#Collections#Generic#IEnumerable{Habanero#BO#ClassDefinition#ITrigger}#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.TriggerCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.ClassDefHelper">
            <summary>
            Provides helper utilities for class definitions
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefHelper.GetPropDefByPropName(Habanero.Base.IClassDef,System.String)">
            <summary>
            Finds the property definition with the given name for the specified
            class definition.  This method will search through an inheritance
            structure or relationship if needed.
            </summary>
            <param name="classDef">The class definition containing either the property
            or containing inheritance or relationship structures that might hold
            the property</param>
            <param name="propertyName">The name of the property.  A related property can
            be described by "RelationshipName.PropertyName".</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefHelper.GetPrimaryKeyDef(Habanero.Base.IClassDef,Habanero.Base.ClassDefCol)">
            <summary>
             Returns the <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef"/> for the specified <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>.
             This may be an inherited <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef"/> from a super class.
            </summary>
            <param name="classDef">The <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> for which the <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef"/> needs to be found.</param>
            <param name="classDefCol">The <see cref="T:Habanero.Base.ClassDefCol"/> to use when searching the super classes for the <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef"/>.</param>
            <returns>Returns the <see cref="P:Habanero.BO.ClassDefinition.ClassDef.PrimaryKeyDef"/> for the specified <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>.</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException"></exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefHelper.GetSuperClassClassDef(Habanero.Base.ISuperClassDef,Habanero.Base.ClassDefCol)">
            <summary>
             Returns the <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> for the super class defined in the specified <see cref="T:Habanero.BO.ClassDefinition.SuperClassDef"/>.
            </summary>
            <param name="superClassDef">The <see cref="T:Habanero.BO.ClassDefinition.SuperClassDef"/> for which to find its Super class <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>.</param>
            <param name="classDefCol">The <see cref="T:Habanero.Base.ClassDefCol"/> to use to search for the super class <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>.</param>
            <returns>Returns the <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> for the super class defined in the specified <see cref="T:Habanero.BO.ClassDefinition.SuperClassDef"/>.</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException"></exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefHelper.GetRelationshipDefByName(Habanero.Base.IClassDef,System.String)">
            <summary>
            Returns the relationship on the classdef that matches the name given.  If no match is found,
            returns null.
            </summary>
            <param name="classDef"></param>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropGeneralDataMapper">
            <summary>
             Implements a data mapper for a Guid Property
             The property data mapper conforms to the GOF strategy pattern <seealso cref="T:Habanero.BO.ClassDefinition.BOPropDataMapper"/>.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropDataMapper">
            <summary>
             Provides an interface for property data mappers.
             The property data mapper conforms to the GOF strategy pattern.
             This allows the developer to apply the data mapper that is relevant to the particular situation.
             E.g. Code to read data from a database (or other datasource) and convert it to the appropriate type.
             This can be customised for a particular situation and can be used to implement custom type conversions
               this is particularly usefull for legacy databases or non standard databases and can be used for 
               parsing text files XML files or any other datasource.
             
             The mapper has two methods 
             <li>the <see cref="M:Habanero.BO.ClassDefinition.BOPropDataMapper.ConvertValueToString(System.Object)"/> method will convert any object of the correct type/format to 
             a string value.</li>
             <li> the <see cref="M:Habanero.BO.ClassDefinition.BOPropDataMapper.TryParsePropValue(System.Object,System.Object@)"/> method will convert any object of the appropriate type or a string 
               with the correct format to a valid object </li>
            </summary>
        </member>
        <member name="F:Habanero.BO.ClassDefinition.BOPropDataMapper._standardDateTimeFormat">
            <summary>
            The standard date Time Format to use.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropDataMapper.ConvertValueToString(System.Object)">
            <summary>
             Converts the value of a valid type for this property definition to a string relevant.
             A null value will be oonverted to a zero length string.
             </summary><param name="value">The value to be converted</param><returns>The converted string.</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropDataMapper.TryParsePropValue(System.Object,System.Object@)">
             <summary>
              This method provides a the functionality to convert any object to the appropriate
                type for the particular BOProp Type. e.g it will convert a valid guid string to 
                a valid Guid Object.
              </summary><param name="valueToParse">The value to be converted</param><returns>An object of the correct type.</returns>
            <param name="returnValue">the parsed value</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropDataMapper.GetDisplayPropValue(System.Object)">
            <summary>
             This returns the property value that should be displayed
            </summary>
            <param name="propValue"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropGeneralDataMapper.#ctor(Habanero.Base.IPropDef)">
            <summary>
             Creates the Generalised Data Mapper with the appropriate propDef.
            </summary>
            <param name="propDef"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropGeneralDataMapper.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This method provides a the functionality to convert any object to the appropriate
              type for the particular BOProp Type. e.g it will convert a valid guid string to 
              a valid Guid Object.
            </summary>
            <param name="valueToParse">The value to be converted</param>
            <param name="returnValue"></param>
            <returns>An object of the correct type.</returns>
        </member>
        <member name="T:Habanero.BO.BOStatus">
            <summary>
             The current state of a business object.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOStatus.#ctor(Habanero.BO.BusinessObject)">
            <summary>
            </summary>
            <param name="bo"></param>
        </member>
        <member name="M:Habanero.BO.BOStatus.IsValid(System.String@)">
            <summary>
            Indicates whether all of the property values of the object are valid
            </summary>
            <param name="message">If the object is not valid then this returns the reason for it being invalid</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BOStatus.IsValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the property values of the object are valid
            </summary>
            <param name="errors">If the object is not valid then this list is populated with the errors</param>
            <returns>Returns true if all are valid </returns>
        </member>
        <member name="M:Habanero.BO.BOStatus.IsValid">
            <summary>
            Indicates whether all of the property values of the object are valid
            </summary>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BOStatus.HasWarnings(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the property values of the object are valid and that the business object is a valid state to persist.
            Also returns true if the Business Object has any warnings or Suggestions <see cref="T:Habanero.Base.ErrorLevel"/>.
            Warnings and Suggestions do not prevent the Business Object from being persisted but indicate that the
            Business object is not in a valid state e.g. A Customer order can be saved but cannot be Approved if it has warnings.
            </summary>
            <param name="errors">If the object is not valid then this list is populated with the errors</param>
            <returns>Returns true if all are valid </returns>
        </member>
        <member name="M:Habanero.BO.BOStatus.GetBOFlagValue(Habanero.BO.BOStatus.Statuses)">
            <summary>
            Indicates if the specified flag is currently set
            </summary>
            <param name="objFlag">The flag in question. See the Statuses
            enumeration for more detail.</param>
            <returns>Returns true if set, false if not</returns>
        </member>
        <member name="M:Habanero.BO.BOStatus.SetBOFlagValue(Habanero.BO.BOStatus.Statuses,System.Boolean)">
            <summary>
            Sets the flag value as specified
            </summary>
            <param name="flag">The flag value to set. See the Statuses
            enumeration for more detail.</param>
            <param name="bValue">The value to set to</param>
        </member>
        <member name="M:Habanero.BO.BOStatus.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />. </param>
            <exception cref="T:System.NullReferenceException">The <paramref name="obj" /> parameter is null.</exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.BOStatus.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.BOStatus.IsNew">
            <summary>
            Indicates if the business object is new
            </summary>
        </member>
        <member name="P:Habanero.BO.BOStatus.IsDeleted">
            <summary>
            Indicates if the business object has been deleted
            </summary>
        </member>
        <member name="P:Habanero.BO.BOStatus.IsEditing">
            <summary>
            Gets and sets the flag which indicates if the business object
            is currently being edited
            </summary>
        </member>
        <member name="P:Habanero.BO.BOStatus.IsDirty">
            <summary>
            Indicates whether the business object has been amended since it
            was last persisted to the database
            </summary>
        </member>
        <member name="P:Habanero.BO.BOStatus.IsValidMessage">
            <summary>
             Returns an invalid message if the object is valid <see cref="M:Habanero.BO.BOStatus.IsValid"/>
            </summary>
        </member>
        <member name="P:Habanero.BO.BOStatus.BusinessObject">
            <summary>
            Returns the Business Object that this Status is for.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOStatus.Statuses">
            <summary>
            An enumeration that describes the object's state
            </summary>
        </member>
        <member name="F:Habanero.BO.BOStatus.Statuses.isNew">
            <summary>The object is new</summary>
        </member>
        <member name="F:Habanero.BO.BOStatus.Statuses.isDirty">
            <summary>The object has changed since its last persistance to
            the database</summary>
        </member>
        <member name="F:Habanero.BO.BOStatus.Statuses.isDeleted">
            <summary>The object has been deleted</summary>
        </member>
        <member name="F:Habanero.BO.BOStatus.Statuses.isEditing">
            <summary>The object is being edited</summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlDatabaseLookupListLoader">
            <summary>
            Loads lookup list data from the reader, using sql information as
            specified in the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlLookupListLoader">
            <summary>
            A super-class for xml loaders that load lookup list data
            </summary>
        </member>
        <member name="F:Habanero.BO.Loaders.XmlLookupListLoader._ruleName">
            <summary>
            The name of the rule
            </summary>
        </member>
        <member name="F:Habanero.BO.Loaders.XmlLookupListLoader._isCompulsory">
            <summary>
            whether this is compulsory or not
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.LoadLookupList(System.String)">
            <summary>
            Loads a lookup list using the specified source element
            </summary>
            <param name="sourceElement">The source element as a string</param>
            <returns>Returns an ILookupList object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.LoadLookupList(System.Xml.XmlElement)">
            <summary>
            Loads a lookup list using the specified source element
            </summary>
            <param name="sourceElement">The source element as an XmlElement
            object</param>
            <returns>Returns an ILookupList object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.LoadFromReader">
            <summary>
            Loads the data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.LoadLookupListFromReader">
            <summary>
            Loads the lookup list data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlLookupListLoader.LoadLookupListIntoProperty(System.String,Habanero.Base.IPropDef,Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Loads the lookup list data into the specified property definition
            </summary>
            <param name="sourceElement">The source element</param>
            <param name="def">The property definition to load into</param>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlDatabaseLookupListLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlDatabaseLookupListLoader.LoadLookupListFromReader">
            <summary>
            Loads the lookup list data from the reader, using the sql string, time-out
            class name and assembly name specified in the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlDatabaseLookupListLoader.Create">
            <summary>
            Creates a database lookup list data source from the
            data already read in
            </summary>
            <returns>Returns a DatabaseLookupList object</returns>
        </member>
        <member name="T:Habanero.BO.PropRuleSingle">
            <summary>
            Checks Single values against property rules that test for validity
            </summary>
        </member>
        <member name="T:Habanero.BO.IPropRuleComparable`1">
            <summary>
            This is an interface for Comparable Prop Rule typically Comparable prop rule are Prop Rules that are implemented
            for certain types in this case we have implemented them for Decimal, Double, DateTime and Integer.
            The IPropRuleComparable has only a MinValue and a MaxValue to Type T.
            </summary>
        </member>
        <member name="P:Habanero.BO.IPropRuleComparable`1.MinValue">
            <summary>
            Gets and sets the minimum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.IPropRuleComparable`1.MaxValue">
            <summary>
            Gets and sets the maximum value that the Double can be assigned
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleSingle.#ctor(System.String,System.String,System.Single,System.Single)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minValue">The minimum value allowed for the Single</param>
            <param name="maxValue">The maximum value allowed for the Single</param>
        </member>
        <member name="M:Habanero.BO.PropRuleSingle.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleSingle.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleSingle.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleSingle.MinValue">
            <summary>
            Gets and sets the minimum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleSingle.MaxValue">
            <summary>
            Gets and sets the maximum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleSingle.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.BO.Broker">
            <summary>
            Serves as a broker between the application and the database, by
            loading a specified business object by its ID
            </summary>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject``1(Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of type T, using the Primary key given as the criteria
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the Primary key given as the criteria
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject``1(Habanero.Base.Criteria)">
            <summary>
            Loads a business object of type T, using the criteria given
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found, an error is raised</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, 
            using the SelectQuery given. It's important to make sure that the ClassDef parameter given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject``1(System.String)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObject(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteriaString">The criteria to use to load the business object must be of formst "PropName = criteriaValue" e.g. "Surname = Powell"</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an error is raised</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetRelatedBusinessObject``1(Habanero.BO.SingleRelationship{``0})">
            <summary>
            Loads a business object of type T using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <typeparam name="T">The type of the business object to load</typeparam>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of type T if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetRelatedBusinessObject(Habanero.BO.ISingleRelationship)">
            <summary>
            Loads a business object using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of the type defined by the relationship if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.OrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of Ts specified as follows:
            If you want record 6 to 15 then
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderCriteria"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteria">The search criteria</param>
            <param name="orderCriteria">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of Ts specified as follows:
            If you want record 6 to 15 then 
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderCriteriaString"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteriaString">The search criteria</param>
            <param name="orderCriteriaString">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria,Habanero.Base.OrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="searchCriteria">The select query to use to load from the data source</param>
            <param name="orderCriteria">The order that the collections must be loaded in e.g. Surname, FirstName</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="searchCriteria">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.Refresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.Broker.Refresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.Broker.Refresh(Habanero.Base.IBusinessObject)">
            <summary>
            Reloads a businessObject from the datasource using the id of the object.
            A dirty object will not be refreshed from the database and the appropriate error will be raised.
            Cancel all edits before refreshing the object
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">Exception thrown if the object is dirty and refresh is called.</exception>
            <param name="businessObject">The businessObject to refresh</param>
        </member>
        <member name="M:Habanero.BO.Broker.GetRelatedBusinessObjectCollection``1(Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="M:Habanero.BO.Broker.GetRelatedBusinessObjectCollection(System.Type,Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <param name="type">The type of collection to load. This must be a class that implements IBusinessObject</param>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="T:Habanero.BO.NumberGenerator">
            <summary>
            This is a simple number generator class. This class implements no locking strategy.
            I.e. If two users try to retrieve a number of the same type concurrently then they
            will retrieve the same number. The object that the number is being used for e.g. member number
            will raise an error when that object is being saved if the member number is an alternate key.
            There is also no guarantee that the number will not have missing numbers in the sequence.
            E.g. member 1 asks for a number and gets 0001, member2 gets 0002 and member3 gets 0003.
            member3 is saved and member2 and member1 are not then there will be missing numbers in the sequence.
            </summary>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.#ctor(System.String)">
            <summary>
             Creates a number generator of the specified type. If no record is currently in the database for that type,
             then this will create an entry in the table with the seed number of zero.
            </summary>
            <param name="numberType">Type of number</param>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.#ctor(System.String,System.String)">
            <summary>
             Creates a number generator of the specified type. If no record is currently in the database for that type.
             Then this will create an entry in the table with the seed number of zero.
            </summary>
            <param name="numberType">Type of number</param>
            <param name="tableName">the table that the sequence number is being stored in.</param>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.NextNumber">
            <summary>
            Returns the next available unique number. One possible means
            of providing unique numbers is simply to increment the last one
            dispensed.
            </summary>
            <returns>Returns an integer</returns>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.SetSequenceNumber(System.Int64)">
            <summary>
            Allows the developer to set the new Sequence number this can be used when initialy creating the numbers e.g. when 
            you want to ensure that the numbers are generated starting at 10000.
            </summary>
            <param name="newSequenceNumber"></param>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.AddToTransaction(Habanero.Base.ITransactionCommitter)">
            <summary>
            Interface to add the number generator to a transaction via the transaction committer.
            </summary>
            <param name="transactionCommitter"></param>
        </member>
        <member name="M:Habanero.BO.NumberGenerator.Save">
            <summary>
             Updates the number generator table.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOSequenceNumber">
            <summary>
             A simple sequential number generator business object
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObject">
            <summary>
            Provides a super-class for business objects. This class contains all
            the common functionality used by business objects.
            This Class implements the Layer SuperType - Fowler (xxx)
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._boPropCol">
            <summary>
            The Collection of Business Object Properties for this Business Object.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._businessObjectUpdateLog">
            <summary>
            The Update Log being used for this Business Object.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._classDef">
            <summary>
            The Class Definition <see cref="T:Habanero.Base.IClassDef"/> for this business object.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._concurrencyControl">
            <summary> The Concurrency Control mechanism used by this Business object </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._keysCol">
            <summary>
            the Collection of alternate keys used by this <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._primaryKey">
            <summary>
            The Primary key for this <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._relationshipCol">
            <summary>
            The Relationships owned by this <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.#ctor">
            <summary>
            Constructor to initialise a new business object
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.#ctor(Habanero.Base.IClassDef)">
            <summary>
            Constructor that specifies a class definition
            </summary>
            <param name="def">The class definition</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.#ctor(Habanero.BO.ConstructForFakes)">
            <summary>
            Constructor that specifies a class definition
            </summary>
            <param name="constructForFakes"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructs an <see cref="T:Habanero.Base.IBusinessObject"/> from a serialised source.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets the Objects data for the purposes of serialisation.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.ToString">
            <summary>
            Returns a <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.
            </summary>
            
            <returns>
            A <see cref="T:System.String" /> that represents the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.BusinessObject.Finalize">
            <summary>
            A destructor for the object
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.ConstructFromClassDef(System.Boolean)">
            <summary>
            Constructs the class
            </summary>
            <param name="newObject">Whether the object is new or not</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.ConstructClassDef">
            <summary>
            Constructs a class definition
            </summary>
            <returns>Returns a class definition</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetConcurrencyControl(Habanero.Base.IConcurrencyControl)">
            <summary>
            Sets the concurrency control object
            </summary>
            <param name="concurrencyControl">The concurrency control</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetTransactionLog(Habanero.Base.ITransactionLog)">
            <summary>
            Sets the transaction log to that specified
            </summary>
            <param name="transactionLog">A transaction log</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetAuthorisationRules(Habanero.Base.IBusinessObjectAuthorisation)">
            <summary>
            Sets the IBusinessObjectAuthorisation to that specified
            </summary>
            <param name="authorisationRules">The authorisation Rules</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetBusinessObjectUpdateLog(Habanero.Base.IBusinessObjectUpdateLog)">
            <summary>
            Sets the business object update log to the one specified
            </summary>
            <param name="businessObjectUpdateLog">A businessObject update log object</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetBOKeyCol">
            <summary>
            Returns the collection of BOKeys
            </summary>
            <returns>Returns a BOKeyCol object</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetDebugOutput">
            <summary>
            Returns a string useful for debugging output
            </summary>
            <returns>Returns an output string</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsCreatable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The Creatable rules of a business object.
             E.g. Certain users may not be allowed to create certain Business Objects.
             </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsEditable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The editable state of a business object.
             E.g. Once an invoice is paid it is no longer editable. Or when a course is old it is no
             longer editable. This allows a UI developer to standise Code for enabling and disabling controls.
             These rules are applied to new object as well so if you want a new object 
             to be editable then you must include this.Status.IsNew in evaluating IsEditable.
             It also allows the Application developer to implement security controlling the 
               Editability of a particular Business Object.
             </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsDeletable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from BusinessObject.
             The method allows the Business object developer to add customised rules that determine
             the Deletable state of a business object, e.g. Invoices can never be deleted once created. 
             Objects cannot be deleted once they have reached certain stages e.g. a customer order after it is accepted.
             These rules are applied to new objects too, so if you want a new object 
             to be deletable then you must include this.Status.IsNew in evaluating IsDeletable.
             It also allows the application developer to implement security that controls the 
              deletion of a particular Business Object.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyValue(System.String)">
            <summary>
            Returns the value under the property name specified
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyValue(Habanero.Base.Source,System.String)">
            <summary>
            Returns the value under the property name specified, accessing it through the 'source'
            </summary>
            <param name="source">The source of the property ie - the relationship or C# property this property is on</param>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPersistedPropertyValue(Habanero.Base.Source,System.String)">
            <summary>
            Returns the value stored in the DataStore for the property name specified, accessing it through the 'source'
            </summary>
            <param name="source">The source of the property ie - the relationship or C# property this property is on</param>
            <param name="propName">The property name</param>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetPropertyValue(System.String,System.Object)">
            <summary>
            Sets a property value to a new value
            </summary>
            <param name="propName">The property name</param>
            <param name="newPropValue">The new value to set to</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsValid(System.String@)">
            <summary>
            Indicates whether all of the property values are valid
            </summary>
            <param name="invalidReason">A string to modify with a reason
            for any invalid values</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsValid">
            <summary>
            Indicates whether all of the property values are valid
            </summary>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyValueString(System.String)">
            <summary>
            Returns the value under the property name specified. 
            But returns the value as a string regardless of the
            true underlying value type.
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsReadable(System.String@)">
            <summary>
             This method can be overridden by a class that inherits from Business object.
             The method allows the Business object developer to add customised rules that determine.
             The Readable rules of a business object.
             E.g. Certain users may not be allowed to view certain objects.
             </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyValue``1(System.String)">
            <summary>
             Returns the value under the property name specified
             as a specific type <paramref name="{T}"/>
            </summary>
            <param name="propName">The property name</param>
            <typeparam name="T">The type to cast the retrieved property value to.</typeparam>
            <returns>Returns the value if found</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetProperty(System.String)">
            <summary>
            Returns the <see cref="T:Habanero.Base.IBOProp"/> that for this property.
            Raises <see cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException"/> if prop not found.
            </summary>
            <param name="propName"></param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyNameException">Raised if BOProp with propname does not exit in
            Props the collection of BOPRops</exception>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.BeginEdit">
            <summary>
            Sets the object's state into editing mode.  The original state can
            be restored with Restore() and changes can be committed to the
            datastore by calling Save().
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObject._beginEditRunning">
            <summary>
            Sets the object's state into editing mode.  The original state can
            be restored with Restore() and changes can be committed to the
            database by calling Save().
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.CheckNotEditing">
            <summary>
            Checks whether editing is already taking place, in which case
            an exception is thrown
            </summary>
            <exception cref="T:Habanero.BO.EditingException">Thrown if editing is taking
            place</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyValueToDisplay(System.String)">
            <summary>
            Returns the named property value that should be displayed
              on a user interface e.g. a textbox.
            This is used primarily for Lookup lists where
               the value stored for the object may be a guid but the value
               to display may be a string.
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the property value</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetPropertyStringValueToDisplay(System.String)">
            <summary>
            Returns the property value as in <see cref="M:Habanero.BO.BusinessObject.GetPropertyValueToDisplay(System.String)"/> , but
            returns the value as a string.
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.InitialisePropertyValue(System.String,System.Object)">
            <summary>
            Sets an initial property value
            </summary>
            <param name="propName">The property name</param>
            <param name="propValue">The value to initialise to</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.Save">
            <summary>
            Commits to the database any changes made to the object
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.Restore">
            <summary>
            Cancel all edits made to the object since it was loaded from the 
            database or last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.CancelEdits">
            <summary>
            Cancel all edits made to the object since it was loaded from the 
            database or last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.MarkForDelete">
            <summary>
            Marks the business object for deleting.  Calling Save() or saving the transaction will
            then carry out the deletion from the database.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.Delete">
            <summary>
            Marks the business object for deleting.  Calling Save() will
            then carry out the deletion from the database.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AfterLoad">
            <summary>
            Extra preparation or steps to take out after loading the business. Override this if you need to update a calculated property, for example.
            This method will be called after an object is loaded for the first time, and after it is refreshed, but only if the refreshing causes
            a property to be updated.
            object
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.UpdateStateAsPersisted">
            <summary>
            Carries out updates to the object after changes have been
            committed to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.UpdateObjectBeforePersisting(Habanero.Base.ITransactionCommitter)">
            <summary>
             Executes any custom code required by the business object before it is persisted to the database.
             This has the additionl capability of creating or updating other business objects and adding these
             to the transaction committer.
             <remarks> Recursive call to UpdateObjectBeforePersisting will not be done i.e. it is the bo developers responsibility to implement</remarks>
            </summary>
            <param name="transactionCommitter">the transaction committer that is executing the transaction</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.FireMarkForDeleteEvent">
            <summary>
            Fires Updates Event for <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.FireUpdatedEvent">
            <summary>
            Fires Updates Event for <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.FirePropertyUpdatedEvent(Habanero.Base.IBOProp)">
            <summary>
            Fires Updated Event for <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
            <param name="prop"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.FireIDUpdatedEvent">
            <summary>
            Fires IDUpdated Event for <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AreCustomRulesValid(System.String@)">
            <summary>
            Override this method in subclasses of BusinessObject to check custom rules for that
            class.  The default implementation returns true and sets customRuleErrors to the empty string.
            </summary>
            <param name="customRuleErrors">The error string to display</param>
            <returns>true if no custom rule errors are encountered.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AreCustomRulesValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Override this method in subclasses of BusinessObject to check custom rules for that
            class.  The default implementation returns true and sets customRuleErrors to the empty string.
            </summary>
            <param name="errors">The errors</param>
            <returns>true if no custom rule errors are encountered.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.LoadBusinessObjectRules(System.Collections.Generic.IList{Habanero.Base.IBusinessObjectRule})">
            <summary>
            Load the <see cref="T:Habanero.Base.IBusinessObjectRule"/>s for this BusinessObject.
            </summary>
            <param name="boRules"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AreCustomRulesValidInternal(System.String@)">
            <summary>
            Calls through to <see cref="M:Habanero.BO.BusinessObject.AreCustomRulesValid(System.String@)"/>
            </summary>
            <param name="customRuleErrors">The error string to display</param>
            <returns>true if no custom rule errors are encountered.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AreCustomRulesValidInternal(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Checks the <see cref="M:Habanero.BO.BusinessObject.GetBusinessObjectRules"/>. Calls through to 
            <see cref="M:Habanero.BO.BusinessObject.AreCustomRulesValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)"/>
            </summary>
            <param name="errors">The errors</param>
            <returns>true if no custom rule errors are encountered.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.HasWarnings(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Checks the <see cref="M:Habanero.BO.BusinessObject.GetBusinessObjectRules"/> for any rules that have warnings or suggestions.
            </summary>
            <param name="errors">The warnings and suggestions</param>
            <returns>true if no <see cref="M:Habanero.BO.BusinessObject.GetBusinessObjectRules"/> errors are encountered.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.GetSchema">
            <summary>
            Method implemented for legacy purposes only. Returns null.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.ReadXml(System.Xml.XmlReader)">
            <summary>
            Defines how to read Business Objects from serialized xml
            </summary>
            <param name="reader">The XmlReader</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.WriteXml(System.Xml.XmlWriter)">
            <summary>
            Defines how to write Business Objects to serialized xml 
            </summary>
            <param name="writer">The XmlWriter</param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.WriteXmlNestedRelationship(System.Xml.XmlWriter,Habanero.Base.IRelationship)">
            <summary>
            Writes related objects that are in composite and aggregate relationships
            as nested xml.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.CheckConcurrencyBeforePersisting">
            <summary>
            Checks concurrency before persisting to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.CheckConcurrencyBeforeBeginEditing">
            <summary>
            Checks concurrency before beginning to edit an object's values
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.UpdatedConcurrencyControlPropertiesBeforePersisting">
            <summary>
            Updates the concurrency control properties
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.ReleaseWriteLocks">
            <summary>
            Releases write locks from the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.UpdateAsTransactionRolledBack">
            <summary>
             Called by the transaction committer in the case where the transaction failed
             and was rolled back.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.AfterSave">
            <summary>
            Called by the business object when the transaction has been successfully committed
            to the database. Called in cases of insert, delete and update.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObject.SetStatus(Habanero.BO.BOStatus.Statuses,System.Boolean)">
            <summary>
            Sets the status of the business object to the status true or false.
            </summary>
            <param name="status"></param>
            <param name="value"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObject.CanBePersisted(System.String@)">
            <summary>
            Checks if the object can be persisted. This
            Checks the basic rules e.g. If you are deleting then
              IsDeletable if creating a new object then IsCreatable
              if Updating then IsEditable.
            </summary>
            <param name="errMsg">The appropriate error message if the 
             Business Object cannot be persisted</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObject.IsArchived">
            <summary>
            Is the <see cref="T:Habanero.Base.IBusinessObject"/> archived or not. This can be overriden by a
            specific business object to implement required behaviour.
            </summary>
            <returns></returns>
        </member>
        <member name="E:Habanero.BO.BusinessObject.Updated">
            <summary>
            Event fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is updated.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.Saved">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is Saved.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.Deleted">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is deleted.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.Restored">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is Restored.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.MarkedForDeletion">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is MarkedForDeletion.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.PropertyUpdated">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is PropertyUpdated.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObject.IDUpdated">
            <summary>
            Event that is fired when this <see cref="T:Habanero.Base.IBusinessObject"/> is IDUpdated.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.DirtyXML">
            <summary>
            Returns an XML string that contains the changes in the object
            since the last persistance to the database
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.Relationships">
            <summary>
            Gets and sets the collection of relationships
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.ClassDef">
            <summary>
            Returns or sets the class definition. Setting the classdef is not recommended
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.Habanero#Base#IBusinessObject#Relationships">
            <summary>
            Gets and sets the collection of relationships
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.Habanero#Base#IBusinessObject#ClassDef">
            <summary>
            Returns or sets the class definition. Setting the classdef is not recommended
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.ID">
            <summary>
            Returns the primary key ID of this object.  If there is no primary key on this
            class, the primary key of the nearest suitable parent is found and populated
            with the values held for that key in this object.  This is a possible situation
            in some forms of inheritance.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.PrimaryKey">
            <summary>
            The primary key for this business object 
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.Props">
            <summary>
            The BOProps in this business object
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.Status">
            <summary>
            The IBOState <see cref="T:Habanero.Base.IBOStatus"/> object for this BusinessObject, which records the status information of the object
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.TransactionLog">
            <summary>
            This returns the Transaction Log object set up for this BusinessObject.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObject.BusinessObjectUpdateLog">
            <summary>
            The Update Log being used for this Business Object.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOSequenceNumber.NumberType">
            <summary>
            Gets or sets the type of number
            </summary>
        </member>
        <member name="P:Habanero.BO.BOSequenceNumber.SequenceNumber">
            <summary>
            Gets or sets the sequence number
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.Xsds">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Xsds.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Xsds.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Xsds.classes">
             <summary>
               Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
            &lt;xs:schema xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
              &lt;xs:element name=&quot;prop&quot;&gt;
                &lt;xs:complexType&gt;
                  &lt;xs:attribute name=&quot;name&quot; type=&quot;xs:NMTOKEN&quot; use=&quot;required&quot; /&gt;
                &lt;/xs:complexType&gt;
              &lt;/xs:element&gt;
              &lt;xs:element name=&quot;key&quot;&gt;
                &lt;xs:complexType&gt;
                  &lt;xs:sequence&gt;
                    &lt;xs:element minOccurs=&quot;1&quot; maxOccurs=&quot;unbounded&quot; ref=&quot;prop&quot; /&gt;
                  &lt;/xs:sequence&gt;
                  &lt;xs:attribute name=&quot;name&quot; type=&quot;xs:string&quot; /&gt;
                  &lt;xs:attribute default=&quot;false&quot; name [rest of string was truncated]&quot;;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Xsds.There_was_an_error_in_DataSetProvider_MultipleDelesHit">
            <summary>
              Looks up a localized string similar to There was an error in DataSetProvider: If you hit delete many times in succession then you get an issue with the events interfering and you get a wierd error .
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Xsds.ui">
             <summary>
               Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
            &lt;xs:schema xmlns=&quot;http://tempuri.org/uis&quot; elementFormDefault=&quot;qualified&quot; targetNamespace=&quot;http://tempuri.org/uis&quot; xmlns:xs=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
              &lt;xs:element name=&quot;parameter&quot;&gt;
                &lt;xs:complexType&gt;
                  &lt;xs:attribute name=&quot;name&quot; type=&quot;xs:NMTOKEN&quot; use=&quot;required&quot; /&gt;
                  &lt;xs:attribute name=&quot;value&quot; type=&quot;xs:string&quot; use=&quot;required&quot; /&gt;
                &lt;/xs:complexType&gt;
              &lt;/xs:element&gt;
              &lt;xs:element name=&quot;column&quot;&gt;
                &lt;xs:complexType&gt;
                  &lt;xs:sequence&gt;
                   [rest of string was truncated]&quot;;.
             </summary>
        </member>
        <member name="T:Habanero.Base.IDataSetProvider">
            <summary>
            An interface to model data-set providers
            </summary>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.GetDataTable(Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Returns a data table with the UIGridDef provided
            </summary>
            <param name="uiGrid">The UIGridDef</param>
            <returns>Returns a DataTable object</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.GetDataView(Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Returns a data view for the UIGridDef provided
            </summary>
            <param name="uiGrid">The UIGridDef</param>
            <returns>Returns a DataTable object</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.Find(System.Guid)">
            <summary>
            Finds an IBusinessObject given the ID.
            </summary>
            <param name="objectID">The id of the bo to search for</param>
            <returns>The business object corresponding to the ID</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.Find(System.Int32)">
            <summary>
            Returns the business object at the row number specified
            </summary>
            <param name="rowNum">The row number</param>
            <returns>Returns a business object</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.Find(System.Data.DataRow)">
            <summary>
            Returns the business object at the row specified
            </summary>
            <param name="row">The row related to the business object</param>
            <returns>Returns a business object</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.FindRow(Habanero.Base.IBusinessObject)">
            <summary>
            Finds the row number in which a specified business object resides
            </summary>
            <param name="bo">The business object to search for</param>
            <returns>Returns the row number if found, or -1 if not found</returns>
        </member>
        <member name="M:Habanero.Base.IDataSetProvider.UpdateBusinessObjectRowValues(Habanero.Base.IBusinessObject)">
            <summary>
             Updates the row values for the specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
            <param name="businessObject">The <see cref="T:Habanero.Base.IBusinessObject"/> for which the row values need to updated.</param>
        </member>
        <member name="P:Habanero.Base.IDataSetProvider.IDColumnName">
            <summary>
             The column name used for the <see cref="T:System.Data.DataTable"/> column which stores the unique object identifier of the <see cref="T:Habanero.Base.IBusinessObject"/>.
             This column's values will always be the current <see cref="T:Habanero.Base.IBusinessObject"/>'s <see cref="P:Habanero.Base.IBusinessObject.ID"/> value.
            </summary>
        </member>
        <member name="P:Habanero.Base.IDataSetProvider.RegisterForBusinessObjectPropertyUpdatedEvents">
            <summary>
             Gets and sets whether the property update handler shold be set or not.
             This is used to 
                change behaviour typically to differentiate behaviour
                between windows and web.
            Typically in windows every time a business object property is changed
               the grid is updated with Web the grid is updated only when the object
                is persisted.
             </summary>
        </member>
        <member name="T:Habanero.BO.BORegistry">
            <summary>
             This is a global registry used by the Business object layer.
             This class allows you to set and get Globally accessable objects. E.g. DataAccessor
            </summary>
        </member>
        <member name="P:Habanero.BO.BORegistry.DataAccessor">
            <summary>
            Gets and sets the DataAccessor to be used. This determines the location your
            BusinessObjects will persist to and load from (eg a DataAccessorDB would make the BusinessObjects
            persist to and load from the database).
            </summary>
        </member>
        <member name="P:Habanero.BO.BORegistry.BusinessObjectManager">
            <summary>
             Returns the Business Object Manager that has been set.
             If no business Object manager has been set then it uses the 
             Singleton Business Object Manager.
            </summary>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="T:Habanero.BO.BOPropLookupList">
            <summary>
             Stores the values (current Value, DatabaseValue etc) and 
              state (dirty, valid) of a property of a <see cref="T:Habanero.Base.IBusinessObject"/>.
             Inherits from <see cref="T:Habanero.BO.BOProp"/> for cases where the BOProp has a <see cref="T:Habanero.Base.ILookupList"/> as
               defined in the <see cref="T:Habanero.BO.ClassDefinition.PropDef"/>.
             Has a reference to the Property Definition <see cref="T:Habanero.BO.ClassDefinition.PropDef"/> that was used to create it.
             The Property definition includes property rules and validation functionality.
             The property of a business object may represent a property such as FirstName, Surname.
             Typically a <see cref="T:Habanero.Base.IBusinessObject"/> will have a collection of Properties.
             
             This allow the property value to be set to either the key or the display value of 
               a lookup list the BOProp will always store the appropriate key value.
             The lookup list is also acts as a list for validation and the BOProp will
              be placed in an invalid state if the key value set is not available in the list.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOProp">
            <summary>
             Stores the values (current Value, DatabaseValue etc) and 
              state (dirty, valid) of a property of a <see cref="T:Habanero.Base.IBusinessObject"/>.
             Has a reference to the Property Definition <see cref="P:Habanero.BO.BOProp.PropDef"/> that was used to create it.
             The Property definition includes property rules and validation functionality.
             The property of a business object may represent a property such as FirstName, Surname.
             Typically a <see cref="T:Habanero.Base.IBusinessObject"/> will have a collection of Properties.
            </summary>
        </member>
        <member name="F:Habanero.BO.BOProp.log">
            <summary> The Logger </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._currentValue">
            <summary> The current value of the BOProp </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._isDirty">
            <summary> Whether the prop has been edited since being created or loaded from the database </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._isValid">
            <summary> Is the boProp valid </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._propDef">
            <summary> The propDef for the BOProp </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._invalidReason">
            <summary> The reason the prop is invalid </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._persistedValue">
            <summary> The persisted value of the Property. </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._origValueIsValid">
            <summary> Whether the origional value loaded from the DB or the default value was valid. </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._origInvalidReason">
            <summary> The reason that the origional value was not valid. </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._isObjectNew">
            <summary> Is the business object new. </summary>
        </member>
        <member name="F:Habanero.BO.BOProp._valueBeforeLastEdit">
            <summary> The value prior to the last edit. </summary>
        </member>
        <member name="M:Habanero.BO.BOProp.#ctor(Habanero.Base.IPropDef)">
            <summary>
            Constructor to initialise a new property
            </summary>
            <param name="propDef">The property definition</param>
        </member>
        <member name="M:Habanero.BO.BOProp.#ctor(Habanero.Base.IPropDef,System.Object)">
            <summary>
            Constructor to initialise a new property with a specific value
            </summary>
            <param name="propDef">The property definition</param>
            <param name="propValue">The initial value</param>
        </member>
        <member name="M:Habanero.BO.BOProp.InitialiseProp(System.Object)">
            <summary>
            Initialises the property with the specified value
            </summary>
            <param name="propValue">The value to assign</param>
        </member>
        <member name="M:Habanero.BO.BOProp.Validate">
            <summary>
            Validates whether the property values set for the BOProp are valid
            as compared to the BOProp rules. This is used by the Business Object 
            Validate Method.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOProp.InitialiseProp(System.Object,System.Boolean)">
            <summary>
            Initialises the property with the specified value, and indicates
            whether the object is new or not
            </summary>
            <param name="propValue">The value to assign</param>
            <param name="isObjectNew">Whether the object is new or not</param>
        </member>
        <member name="M:Habanero.BO.BOProp.ParsePropValue(System.Object,System.Object@)">
            <summary>
            This method provides a the functionality to convert any object to the appropriate
              type for the particular BOProp Type. e.g it will convert a valid guid string to 
              a valid Guid Object.
            </summary>
            <param name="valueToParse">The value to be converted</param>
            <param name="returnValue">The value that has been parsed</param>
        </member>
        <member name="M:Habanero.BO.BOProp.RestorePropValue">
            <summary>
            Restores the property's original value as defined in PersistedValue
            </summary>
        </member>
        <member name="M:Habanero.BO.BOProp.BackupPropValue">
            <summary>
            Copies the current property value to PersistedValue.
            This is usually called when the object is persisted
            to the database.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOProp.CurrentValueEquals(System.Object)">
            <summary>
            Is the <paramref name="compareToValue"/> equal to the 
            current Value of the BOProp. 
            </summary>
            <param name="compareToValue"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BOProp.PersistedValueEquals(System.Object)">
            <summary>
            Is the <paramref name="compareToValue"/> equal to the 
            persisted Value of the BOProp. 
            </summary>
            <param name="compareToValue"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BOProp.RaiseIncorrectTypeException(System.Object)">
            <summary>
            Raises an Erorr if the Incorrect type of property is being set to this BOProp.
            </summary>
            <param name="value"></param>
        </member>
        <member name="M:Habanero.BO.BOProp.FireBOPropValueUpdated">
            <summary>
            Fires an Updated event
            </summary>
        </member>
        <member name="M:Habanero.BO.BOProp.SetAuthorisationRules(Habanero.Base.IBOPropAuthorisation)">
            <summary>
            Set the authorisation rule strategy to be used 
            </summary>
            <param name="boPropAuthorisation"></param>
        </member>
        <member name="M:Habanero.BO.BOProp.IsEditable(System.String@)">
            <summary>
             Returns whether the BOProperty is Editable or not. The BOProp may not be editable
              based on a number of factors. 
              1) If its ReadWrite Rules are set to ReadOnly etc.
              2) The user may not have permissions to edit this property Value.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BOProp.IsReadable">
            <summary>
            Are there any authorisation rules preventing this property from being read.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BOProp.IsReadable(System.String@)">
            <summary>
             Returns whether the BOProperty is Readable or not. The BOProp may not be Readable
              if the user may not have permissions to read the property Value.
            </summary>
            <param name="message">the reason why the user cannot read the property.</param>
            <returns></returns>
        </member>
        <member name="E:Habanero.BO.BOProp.Updated">
            <summary>
            Indicates that the value held by the property has been
            changed. This is fired any time that the current value of the property is set to a new value.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.UpdatesBusinessObjectStatus">
            <summary>
             Indicates whether changes to this <see cref="T:Habanero.BO.BOProp"/> updates the BusinessObject's status.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.BusinessObject">
            <summary>
             This is the <see cref="T:Habanero.Base.IBusinessObject"/> to which this <see cref="T:Habanero.Base.IBOProp"/> belongs.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PropDef">
            <summary>
             The property definition of the property that this BOProp represents.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PropertyName">
            <summary>
            Returns the property name
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.DatabaseFieldName">
            <summary>
            Returns the database field name
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.Value">
            <summary>
            Gets and sets the value for this property
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.ValueBeforeLastEdit">
            <summary>
            Gets the value held before the value was last updated.
            If the object has just been created, this v
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PersistedPropertyValueString">
            <summary>
            Returns the persisted property value as a string (the value 
            assigned at the last backup or database committal)
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PropertyValueString">
            <summary>
            Returns the property value as a string
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PersistedPropertyValue">
            <summary>
            Returns the persisted property value in its object form
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.IsValid">
            <summary>
            Indicates whether the property value is valid
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.IsValidMessage">
            <summary>
            Returns a string which indicates why the property value may
            be invalid
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.InvalidReason">
            <summary>
            Returns a string which indicates why the property value may
            be invalid
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.IsDirty">
            <summary>
            Indicates whether the property's value has been changed since
            it was last backed up or committed to the database
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.IsObjectNew">
            <summary>
            Indicates whether the object is new
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PropertyType">
            <summary>
            Returns the property type
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.DirtyXml">
            <summary>
            Returns an XML string to describe changes between the property
            value and the persisted value.  It consists of an element with the 
            property name, containing "PreviousValue" and "NewValue" elements
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.DisplayName">
            <summary>
            The field name as given to the user in the user interface
            (eg. "Computer Part" rather than "ComputerPartID").  This
            property is used to improve error messaging, so that the
            user recognises the property name as displayed to them,
            rather than as it is represented in the code.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOProp.PropertyValueToDisplay">
            <summary>
            Returns the named property value that should be displayed
              on a user interface e.g. a textbox or on a report.
            This is used primarily for Lookup lists where
               the value stored for the object may be a guid but the value
               to display may be a string.
            </summary>
            <returns>Returns the property value</returns>
        </member>
        <member name="F:Habanero.BO.BOPropLookupList._propValueWhenLookupListDisplayValueLastCalled">
            <summary>
            Used for caching to improve performance.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropLookupList.#ctor(Habanero.Base.IPropDef)">
            <summary>
            Constructor to initialise a new property
            </summary>
            <param name="propDef">The property definition</param>
        </member>
        <member name="M:Habanero.BO.BOPropLookupList.#ctor(Habanero.Base.IPropDef,System.Object)">
            <summary>
            Constructor to initialise a new property
            </summary>
            <param name="propDef">The property definition</param>
            <param name="propValue">the default value for this property</param>
        </member>
        <member name="M:Habanero.BO.BOPropLookupList.InitialiseProp(System.Object,System.Boolean)">
            <summary>
            Initialises the property with the specified value, and indicates
            whether the object is new or not
            </summary>
            <param name="propValue">The value to assign</param>
            <param name="isObjectNew">Whether the object is new or not</param>
        </member>
        <member name="M:Habanero.BO.BOPropLookupList.ParsePropValue(System.Object,System.Object@)">
            <summary>
            This method provides a the functionality to convert any object to the appropriate
              type for the particular BOProp Type. e.g it will convert a valid guid string to 
              a valid Guid Object.
            This allow the property value to be set to either the key or the display value of 
              a lookup list the BOProp will always store the appropriate key value.
            The lookup list is also acts as a list for validation and the BOProp will
             be placed in an invalid state if the key value set is not available in the list.
            </summary>
            <param name="valueToParse">The value to be converted</param>
            <param name="returnValue">The value that has been parsed</param>
        </member>
        <member name="M:Habanero.BO.BOPropLookupList.GetBusinessObjectForProp">
            <summary>
             Returns the Business Object that is related to this property in the case 
               where this property is related to a BusinessObjectLookupList
            </summary>
            <returns></returns>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="P:Habanero.BO.BOPropLookupList.PropertyValueToDisplay">
            <summary>
            Returns the named property value that should be displayed
              on a user interface e.g. a textbox or on a report.
            This is used primarily for Lookup lists where
               the value stored for the object may be a guid but the value
               to display may be a string.
            </summary>
            <returns>Returns the property value</returns>
        </member>
        <member name="P:Habanero.BO.BOPropLookupList.Loading">
            <summary>
            This is used to determine whether the BOPropLookup is loading or not.
            when the lookup is loading it does not validate entries against the lookup list
             and it does not try to parse a value to a lookup value for database and business objects 
             lookup items.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUIGridLoader">
            <summary>
            Loads UI grid definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridLoader.LoadUIGridDef(System.String)">
            <summary>
            Loads a grid definition from the xml string provided
            </summary>
            <param name="formDefElement">The xml string</param>
            <returns>Returns a UIGridDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridLoader.LoadUIGridDef(System.Xml.XmlElement)">
            <summary>
            Loads a grid definition from the xml element provided
            </summary>
            <param name="formDefElement">The xml element</param>
            <returns>Returns a UIGridDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridLoader.Create">
            <summary>
            Creates a grid definition from the data already loaded
            </summary>
            <returns>Returns a UIGridDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridLoader.LoadFromReader">
            <summary>
            Loads grid definition data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.CriteriaManager.Parameter">
            <summary>
            The parameter is a terminal expression that is just a specialised 
            IExpression.  It was created separately from Expression so that it 
            could store the additional parameters of the field name, table name 
            and parameter type.  These are necessary so that the criteria manager 
            component can return a valid SqlExpressionString when required.
            </summary>
            <remarks> 
            The reason for storing this additional info in the expression manager 
            and not parsing it every time a sql statement was required is partly 
            down to performance and partly down to ease of use.
            </remarks>
            Future Enhancements:
            - add error checking such that only valid sqlOperators can be passed 
            in and s.t. the value is valid, e.g. if operator is "IS" then value 
            must be null or not null
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.#ctor(System.String)">
            <summary>
            Constructor that creates a parameter based on the parameter clause
            provided
            </summary>
            <param name="parameterClause">A clause for a single parameter. 
            This must have the syntax:<br/>
            <code>parameterName sqlOperator parameterValue</code>
            (e.g. <code>Field1 >= 3</code>)<br/> 
            NOTE_: The parameter value should not be enclosed in inverted 
            commas.</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.#ctor(System.String,System.String,System.String)">
            <summary>
            Constructor that creates a parameter with the parameter name, 
            sql operator and parameter value provided.
            It is assumed that the database field name is equal to the 
            parameter name unless it is reset later.
            </summary>
            <param name="parameterName">The property name of the parameter</param>
            <param name="sqlOperator">The sql operator</param>
            <param name="parameterValue">This should be a parameter as per a sql 
            "where" clause. NOTE_: Do not parse out a ' as '' since the criteria 
            manager will do this.</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.#ctor(System.String,System.String,System.String,System.String)">
            <summary>
            A constructor as before, except that the field name is explicitly
            provided
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.#ctor(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            A constructor as before, except that the table name and field name
            are explicitly provided.  For other constructors, the table
            name is initialised as an empty string.
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.#ctor(System.String,System.String,System.String,System.String,System.String,Habanero.Base.ParameterType)">
            <summary>
            A constructor as before, except that the parameter type is
            explicitly provided.  For all other constructors, this is
            initialised as a string type.
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.ExpressionString">
            <summary>
            Returns an expression string consisting of the parameter 
            name, operator and parameter value
            </summary>
            <returns>Returns the expression string</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.SqlExpressionString(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Creates a valid sql expression, e.g. for a "where" clause.
            See IExpression.SqlExpressionString for more detail.
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.FieldFullName(System.String,System.String)">
            <summary>
            Returns the full field name, including table name (where applicable),
            field name and surrounding separators.  For instance, with the
            separators as "[" and "]", the output would be:<br/>
            <code>[tablename].[fieldname]</code><br/>
            See IExpression.SqlExpressionString for more detail.
            </summary>
            <returns>Returns a string with the full name</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.GetSqlStringWithNoParameters">
            <summary>
            Returns the parameter value in valid sql format
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.GetParameterValueAsObject">
            <summary>
            Converts the parameter value into an object, based on its
            specified parameter type (see the ParameterType enumeration for
            more detail).  For instance, a number type will be converted to
            a Decimal object.
            </summary>
            <returns>Returns the value as an object</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.DoesntRequireParametrisedValue">
            <summary>
            Indicates whether the sql operator is some variant of "IS" or "IN",
            in which case a parameterised value is not required
            </summary>
            <returns>True if not required, false if required</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.SetParameterSqlInfo(Habanero.Base.IParameterSqlInfo)">
            <summary>
            Copies across the parameterised sql info (see IParameterSqlInfo for
            more detail)
            </summary>
            <param name="info">The IParameterSqlInfo object</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.Clone">
            <summary>
             Creates and returns a copy of this IExpression instance.
            </summary>
            <returns>Returns a copy of this IExpression instance.</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.Parameter.GetSqlOperator">
            <summary>
            Returns the sql operator, with a space before it
            </summary>
            <returns>Returns the operator as a string</returns>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.Parameter.ParameterName">
            <summary>
             The parameter name for this Parameter
            </summary>
        </member>
        <member name="T:Habanero.BO.Rules.ComparisonOperator">
            <summary>
             These operators are used for Comparing Properties
             using the <see cref="T:Habanero.BO.Rules.InterPropRule"/>
            </summary>
        </member>
        <member name="T:Habanero.BO.Rules.InterPropRule">
            <summary>
            This Rule is used for the Common Scenario where
            the One properties Validity is based on another Properties Value.
            E.g. DisposalDate must be Greater Than AcquisitionDate
            
            In the above case the Rule will be on the Disposal Date.
            The other Prop will be the AcquisitionDate Prop and
              the ComparisonOperator Will be GreaterThan
            
            </summary>
        </member>
        <member name="M:Habanero.BO.Rules.InterPropRule.#ctor(Habanero.Base.IPropDef,Habanero.BO.Rules.ComparisonOperator,Habanero.Base.IPropDef)">
            <summary>
            </summary>
            <param name="propLeft"></param>
            <param name="comparisonOperator"></param>
            <param name="propRight"></param>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="M:Habanero.BO.Rules.InterPropRule.IsValid">
            <summary>
            This is not implemented for InterPropRules since it is obsolete.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.Rules.InterPropRule.IsValid(Habanero.Base.IBusinessObject)">
            <summary>
            Determines whether the Expression LeftProp ComparisonOperator RightProp is true or false.
            </summary>
            <param name="bo"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.LeftProp">
            <summary>
            The Left Prop Being Compared e.g. LeftProp LessThan RightProp
            </summary>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.ComparisonOp">
            <summary>
             The ComparisonOperator e.g. e.g. LeftProp LessThan RightProp
            </summary>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.RightProp">
            <summary>
            The Right Prop being compared e.g. LeftProp LessThan RightProp
            </summary>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.Name">
            <summary>
            Returns the rule name
            </summary>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.Message">
            <summary>
            Returns the error message for if the rule fails.
            </summary>
        </member>
        <member name="P:Habanero.BO.Rules.InterPropRule.ErrorLevel">
            <summary>
            The <see cref="P:Habanero.Base.IBusinessObjectRule.ErrorLevel"/> for this BusinessObjectRule e.g. Warning, Error. 
            </summary>
        </member>
        <member name="T:Habanero.BO.Rules.InterPropRule`1">
            <summary>
            This is a Generic version of <see cref="T:Habanero.BO.Rules.InterPropRule"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.Rules.InterPropRule`1.#ctor(Habanero.Base.IPropDef,Habanero.BO.Rules.ComparisonOperator,Habanero.Base.IPropDef)">
            <summary>
             Basic Constructor for the Generic InterPropRule
            </summary>
            <param name="propLeft"></param>
            <param name="comparisonOperator"></param>
            <param name="propRight"></param>
            <exception cref="T:System.ArgumentNullException">If either propLeft or propRight are null</exception>
        </member>
        <member name="M:Habanero.BO.Rules.InterPropRule`1.#ctor(System.Linq.Expressions.Expression{System.Func{`0,System.Object}},Habanero.BO.Rules.ComparisonOperator,System.Linq.Expressions.Expression{System.Func{`0,System.Object}})">
            <summary>
             Overloaded Constructor for the Generic InterPropRule
            </summary>
            <param name="propExpressionLeft"></param>
            <param name="comparisonOperator"></param>
            <param name="propExpressionRight"></param>
        </member>
        <member name="T:Habanero.BO.RelProp">
            <summary>
            Represents the property on which two objects match up in a relationship
            </summary>
        </member>
        <member name="M:Habanero.BO.RelProp.#ctor(Habanero.BO.ClassDefinition.RelPropDef,Habanero.Base.IBOProp)">
            <summary>
            Constructor to initialise a new property
            </summary>
            <param name="mRelPropDef">The relationship property definition</param>
            <param name="lBoProp">The property</param>
        </member>
        <member name="M:Habanero.BO.RelProp.RelatedPropExpression">
            <summary>
            Returns the related property's expression
            </summary>
            <returns>Returns an IExpression object</returns>
        </member>
        <member name="E:Habanero.BO.RelProp.PropValueUpdated">
            <summary>
            The event that is raised when the <see cref="P:Habanero.Base.IRelProp.BOProp"/>'s value is changed
            </summary>
        </member>
        <member name="P:Habanero.BO.RelProp.OwnerPropertyName">
            <summary>
            Returns the property name of the relationship owner
            </summary>
        </member>
        <member name="P:Habanero.BO.RelProp.RelatedClassPropName">
            <summary>
            Returns the property name of the related object
            </summary>
        </member>
        <member name="P:Habanero.BO.RelProp.IsNull">
            <summary>
            Indicates if the property is null
            </summary>
        </member>
        <member name="P:Habanero.BO.RelProp.BOProp">
            <summary>
            The BoProp this RelProp requires to generate its search expression
            </summary>
        </member>
        <member name="P:Habanero.BO.RelProp.Criteria">
            <summary>
            Returns the Criteria for this RelProp
            </summary>
            <returns>Returns an Criteria object</returns>
        </member>
        <member name="T:Habanero.BO.PropRuleInteger">
            <summary>
            Checks integer values against property rules that test for validity
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleInteger.#ctor(System.String,System.String,System.Int32,System.Int32)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param> 
            <param name="min">The minimum value allowed for the integer</param>
            <param name="max">The maximum value allowed for the integer</param>
        </member>
        <member name="M:Habanero.BO.PropRuleInteger.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleInteger.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleInteger.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleInteger.MinValue">
            <summary>
            Gets and sets the minimum value that the integer can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleInteger.MaxValue">
            <summary>
            Gets and sets the maximum value that the integer can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleInteger.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.BO.PropRuleDate">
            <summary>
            Checks date values against property rules that test for validity
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDate.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDate.#ctor(System.String,System.String,System.DateTime,System.DateTime)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minValue">The minimum date that can be set</param>
            <param name="maxValue">The maximum date that can be set</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDate.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDate.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleDate.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleDate.MinValue">
            <summary>
            Returns the minimum value the date can be
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleDate.MaxValue">
            <summary>
            Returns the maximum value the date can be
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUIFormColumnLoader">
            <summary>
            Loads UI form column information from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormColumnLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormColumnLoader.LoadUIFormColumn(System.String)">
            <summary>
            Loads a form column definition from the xml string provided
            </summary>
            <param name="formColumnElement">The xml string</param>
            <returns>Returns a UIFormColumn object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormColumnLoader.LoadUIFormColumn(System.Xml.XmlElement)">
            <summary>
            Loads a form column definition from the xml element provided
            </summary>
            <param name="formColumnElement">The xml element</param>
            <returns>Returns a UIFormColumn object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormColumnLoader.Create">
            <summary>
            Creates a form column definition from the data already loaded
            </summary>
            <returns>Returns a UIFormColumn object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormColumnLoader.LoadFromReader">
            <summary>
            Loads form column data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.PropRuleLong">
            <summary>
            Checks integer values against property rules that test for validity
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleLong.#ctor(System.String,System.String,System.Int64,System.Int64)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param> 
            <param name="min">The minimum value allowed for the long</param>
            <param name="max">The maximum value allowed for the long</param>
        </member>
        <member name="M:Habanero.BO.PropRuleLong.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleLong.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleLong.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleLong.MinValue">
            <summary>
            Gets and sets the minimum value that the integer can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleLong.MaxValue">
            <summary>
            Gets and sets the maximum value that the integer can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleLong.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.BO.PropertyLink`2">
            <summary>
            Links two properties so that you can update one on the update of another.  This is only done if the destination
            property value equals the source property value (before the update).
            
            You can supply a transform that does some operation on the source value (such as converting to lower case, etc).
            
            Please note_ that this should not be used extensively in a class of which there are going to be a large number 
            of instantiated objects because of the large number of objects and event handlers that will be created
            </summary>
        </member>
        <member name="M:Habanero.BO.PropertyLink`2.#ctor(Habanero.Base.IBusinessObject,System.String,System.String,System.Converter{`0,`1})">
            <summary>
            Constructor for building the link between two properties.
            </summary>
            <param name="owningBO">The object that owns the properties being linked</param>
            <param name="sourcePropName">The name of the source property.  This property will be watched for updates, triggering the updating of the destination property</param>
            <param name="destPropName">The name of the destination property.  This will be set to the value of the source (after transformation)</param>
            <param name="transform">The transform to apply. For no transform (ie a straight copy of the source property's value) simply return the input value</param>
        </member>
        <member name="M:Habanero.BO.PropertyLink`2.Disable">
            <summary>
            Disables the property link.  It can be enabled again with <see cref="M:Habanero.BO.PropertyLink`2.Enable"/>, but if the source property
            is changed while the link is disabled the destination property will not be updated once the link is enabled
            again.
            </summary>
        </member>
        <member name="M:Habanero.BO.PropertyLink`2.Enable">
            <summary>
            Enables the property link.  This is the default state after construction.
            </summary>
        </member>
        <member name="M:Habanero.BO.PropertyLink`2.Finalize">
            <summary>
            Destructor - disables the property link to ensure no references are kept.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOObjectID">
            <summary>
            Manages a business object primary key, where the key is the object's ID.
            Unlike composite primary keys that are typically composed of properties
            that are used in real-world scenarios and can be changed, an ObjectID
            is a primary key that won't be used by end users.  It typically acts
            discretely behind the user interface.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOPrimaryKey">
            <summary>
            Manages a primary key, which is a collection of its properties, each
            holding runtime values.  The description of the primary key structure is held
            in PrimaryKeyDef.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOKey">
            <summary>
            Contains the details of the key constraints for the particular
            business object. The Key constraint can be a primary or Alternate Key. 
            The primaryKey <see cref="T:Habanero.BO.ClassDefinition.PrimaryKeyDef"/> or alternate key can both be either 
            composite/compound (more than one property) or single (only one property). 
            The property can also be a meaningFull Key e.g. Surname or a meaningLess Key e.g PersonID
            It is essentially a collection of Business Object Properties <see cref="T:Habanero.BO.BOProp"/>
             objects e.g. FirstName and Surname 
             that behave together in some way (e.g. for a composite alternate
             key, the combination of properties is required to be unique).
            </summary>
        </member>
        <member name="M:Habanero.BO.BOKey.#ctor(Habanero.BO.ClassDefinition.KeyDef)">
            <summary>
            Constructor to initialise a new instance
            </summary>
            <param name="lKeyDef">The key definition</param>
        </member>
        <member name="M:Habanero.BO.BOKey.Add(Habanero.Base.IBOProp)">
            <summary>
            Adds a <see cref="T:Habanero.Base.IBOProp"/> to the key
            </summary>
            <param name="boProp">The BOProp to add</param>
        </member>
        <member name="M:Habanero.BO.BOKey.BOPropUpdated_Handler(System.Object,Habanero.Base.BOPropEventArgs)">
            <summary>
            Event handler for handling the event of a property belonging to this key being updated.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOKey.FireValueUpdated">
            <summary>
            Fires an Updated event
            </summary>
        </member>
        <member name="M:Habanero.BO.BOKey.Contains(System.String)">
            <summary>
            Returns true if a property with this name is part of this key
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if it is contained</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.IsDirtyOrNew">
            <summary>
            Indicates whether to check for duplicates.
            This will be false when IgnoreIfNull is true and one or more 
            of the BOProperties is null.
            </summary>
            <returns>Returns true if duplicates need to be checked for</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.ToString">
            <summary>
            Returns a string containing all the properties and their values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.AsString_CurrentValue">
            <summary>
            Returns a string containing all the properties and their values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.AsString_LastPersistedValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values at last persistence rather than any dirty values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.AsString_PreviousValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values held before the last time they were edited.  This
            method differs from AsString_LastPersistedValue in that the properties may have
            been edited several times since their last persistence.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOKey.GetBOPropCol">
            <summary>
            Returns a copy of the collection of properties in the key
            </summary>
            <returns>Returns a new BOProp collection</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.op_Equality(Habanero.BO.BOKey,Habanero.BO.BOKey)">
            <summary>
            Indicates whether the two keys provided are equal in content
            </summary>
            <param name="lhs">The first key to compare</param>
            <param name="rhs">The second key to compare</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.op_Inequality(Habanero.BO.BOKey,Habanero.BO.BOKey)">
            <summary>
            Indicates whether the two keys provided are different in content
            </summary>
            <param name="lhs">The first key to compare</param>
            <param name="rhs">The second key to compare</param>
            <returns>Returns true if the keys differ at some point</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.Equals(System.Object)">
            <summary>
            Indicates whether the key provided is equal to this key
            </summary>
            <param name="obj">The key to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.GetHashCode">
            <summary>
            Returns a hashcode of the properties string
            </summary>
            <returns>Returns a hashcode integer</returns>
        </member>
        <member name="M:Habanero.BO.BOKey.GetKeyCriteria">
            <summary>
             Returns a Criteria object for the BOKey.
            </summary>
            <returns></returns>
        </member>
        <member name="E:Habanero.BO.BOKey.Updated">
            <summary>
            Indicates that the value held by one or more of the properties in the
            key has been changed. This is especially critical for a primary key
            that is a meaningFull Key and is not immutable. E.g. a User interface grid 
            might be mapped to a particular business object via the string ID.
            If the business object's mutable primary key is modified then the Grid would be 
            required to catch this event so as to be able to update its mapping.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.KeyDef">
            <summary>
            Gets the key definition for this key
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.Item(System.String)">
            <summary>
            Provides an indexing facility so the properties can be accessed
            with square brackets like an array using the property name.
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the matching BOProp object or null if not found
            </returns>
        </member>
        <member name="P:Habanero.BO.BOKey.Item(System.Int32)">
            <summary>
            Provides an indexing facility so the properties can be accessed
            with square brackets like an array using the properties ordinal position.
            </summary>
            <param name="index">The index position of the item to retrieve</param>
            <returns>Returns the matching BOProp object or null if not found
            </returns>
        </member>
        <member name="P:Habanero.BO.BOKey.Count">
            <summary>
            Returns the number of BOProps in this key.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.IgnoreIfNull">
            <summary>
            Gets the ignore-if-null setting.  If this is true, then the uniqueness
            check on a key is ignored if one of the properties that make up the
            key are null.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.IsDirty">
            <summary>
            Indicates whether the properties have been altered
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.IsObjectNew">
            <summary>
            Indicates whether the Business object that contains this BOKey is new.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.KeyName">
            <summary>
            Returns the key name
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.SortedValues">
            <summary>
            Returns a sorted list of the property values
            </summary>
        </member>
        <member name="P:Habanero.BO.BOKey.HasAutoIncrementingProperty">
            <summary>
            Indicates whether any of the properties of this key are auto incrementing.
            </summary>
        </member>
        <member name="F:Habanero.BO.BOPrimaryKey._objectID">
            <summary>
            The object identifier for this BOPrimaryKey
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.#ctor(Habanero.BO.ClassDefinition.PrimaryKeyDef)">
            <summary>
            Constructor to initialise a new primary key
            </summary>
            <param name="lKeyDef">The primary key definition</param>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.SetObjectGuidID(System.Guid)">
            <summary>
            Sets the object's Guid ID
            </summary>
            <param name="id">The ID to set to</param>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetObjectId">
            <summary>
            Returns the object's ID as a string.
            </summary>
            <returns>Returns a string representation of the object id</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetHashCode">
            <summary>
            Returns a hashcode of the ID
            </summary>
            <returns>Returns a hashcode integer</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.BOPropUpdated_Handler(System.Object,Habanero.Base.BOPropEventArgs)">
            <summary>
            Event handler for handling the event of a property belonging to this key being updated.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.IsDirtyOrNew">
            <summary>
            Indicates whether to check for duplicates.  This is true when the
            object is no longer new or when the primary key has not been
            changed.
            </summary>
            <returns>Returns true if duplicates must be checked</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetSuperClassKey(Habanero.BO.ClassDefinition.ClassDef,Habanero.BO.BusinessObject)">
            <summary>
            Returns the primary key of the super-class.  If not found, it
            searches higher up the Hierarchy and returns the higher primary
            key or null if none is found.
            </summary>
            <param name="subClassDef">The class definition to search on</param>
            <param name="subClassObj">The business object</param>
            <returns>Returns a BOKey object or null</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetAsGuid">
            <summary>
            Returns the ID as a Guid if it can
            </summary>
            <returns>Returns a Guid</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.Equals(System.Object)">
            <summary>
            Indicates whether the key provided is equal to this key
            </summary>
            <param name="obj">The key to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetAsValue">
            <summary>
            Returns the ID as a Value. 
            <li>"In cases where the <see cref="T:Habanero.Base.IBusinessObject"/> has an ID with a single 
               property this will return the value of the property.
            </li>
            <li>"In cases where the <see cref="T:Habanero.Base.IBusinessObject"/>  has an ccomposite ID 
               (i.e. with more than one property) this will return a list with the values of the properties.
            </li>
            </summary>
            <returns>Returns an object</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.CreateWithValue(Habanero.BO.ClassDefinition.ClassDef,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will build up a primary key object that can be used to
             load the business object from the Data store (see Business Object loader GetBusinessObjectByValue)
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="classDef">The Class definition of the Business Object to load</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the BOPrimaryKey if this can be constructed else returns null</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.CreateWithValue(System.Type,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will build up a primary key object that can be used to
             load the business object from the Data store <see cref="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectByValue(System.Type,System.Object)"/>
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="type">The type of business object to be loaded</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the BOPrimaryKey if this can be constructed else returns null</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.AsString_CurrentValue">
            <summary>
            Returns a string containing all the properties and their values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.AsString_PreviousValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values held before the last time they were edited.  This
            method differs from AsString_LastPersistedValue in that the properties may have
            been edited several times since their last persistence.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPrimaryKey.GetPreviousObjectID">
            <summary>
             Returns the previous objects Id
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.BOPrimaryKey.IsGuidObjectID">
            <summary>
            Returns true if the primary key is a propery the object's ID, that is,
            the primary key is a single discrete property that is an immutable Guid and serves as the ID.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPrimaryKey.IsCompositeKey">
            <summary>
             Returns true if the primary key is a composite Key (i.e. if it consists of more than one property)
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPrimaryKey.ObjectID">
            <summary>
             The globally unique object identifier for the object that this Primary Key represents. 
             This is the implementation of a fundamental Object Oriented concept 
             that every object should be globally uniquely identifiable.
             The value returned from this property will be the actual value of the primary key property 
             for objects with a <see cref="T:System.Guid"/> id, or it will be a newly created <see cref="T:System.Guid"/> 
             for objects with composite or non-guid primary keys.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPrimaryKey.PreviousObjectID">
            <summary>
             Returns the Previous Object ID this is only for new objects that are assigned
               an object id and then loaded from the database and the object is is updated to the 
               value from the database. The previous Object ID is then used by the object manager,
               collection, dataset provider to update the ID for the object.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPrimaryKey.BusinessObject">
            <summary>
            The Business Object that this PrimaryKey is for.
            </summary>
        </member>
        <member name="F:Habanero.BO.BOObjectID._objectIDProp">
            <summary>
            The BOProp that is used to store the ObjectIdentity
            </summary>
        </member>
        <member name="M:Habanero.BO.BOObjectID.#ctor(Habanero.BO.ClassDefinition.PrimaryKeyDef)">
            <summary>
            Constructor to initialise a new ObjectID
            </summary>
            <param name="lPrimaryKeyDef">The primary key definition</param>
        </member>
        <member name="M:Habanero.BO.BOObjectID.Add(Habanero.Base.IBOProp)">
            <summary>
            Adds a property to the key
            </summary>
            <param name="boProp">The property to add</param>
        </member>
        <member name="M:Habanero.BO.BOObjectID.SetObjectGuidID(System.Guid)">
            <summary>
            Sets the objectID
            </summary>
            <param name="id">The Guid ID to set to</param>
        </member>
        <member name="M:Habanero.BO.BOObjectID.GetObjectId">
            <summary>
            Returns the ObjectID as "ID=ObjectIDValue"
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.IsDirtyOrNew">
            <summary>
            Indicates whether to check for duplicates. This will always
            return false, since the objectID is guaranteed to be unique.
            </summary>
            <returns>Returns false</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.GetAsGuid">
            <summary>
            Returns the ID as a Guid
            </summary>
            <returns>Returns a Guid</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.AsString_CurrentValue">
            <summary>
            Returns a string containing all the properties and their values
            </summary>
            <returns>Returns a string</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.AsString_PreviousValue">
            <summary>
            Returns a string containing all the properties and their values,
            but using the values held before the last time they were edited.  This
            method differs from AsString_LastPersistedValue in that the properties may have
            been edited several times since their last persistence.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOObjectID.op_Equality(Habanero.BO.BOObjectID,System.Guid)">
            <summary>
            Indicates if a BOObjectID has the same value as a given Guid
            </summary>
            <param name="lhs">The ObjectID to compare</param>
            <param name="rhs">The Guid to compare</param>
            <returns>Returns true if the arguments are equal</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.op_Inequality(Habanero.BO.BOObjectID,System.Guid)">
            <summary>
            Indicates if a BOObjectID has a different value to a given Guid
            </summary>
            <param name="lhs">The ObjectID to compare</param>
            <param name="rhs">The Guid to compare</param>
            <returns>Returns true if the arguments differ</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.op_Equality(Habanero.BO.BOObjectID,Habanero.BO.BOObjectID)">
            <summary>
            Indicates if two BOObjectID objects have the same value
            </summary>
            <param name="lhs">The first ObjectID to compare</param>
            <param name="rhs">The second ObjectID to compare</param>
            <returns>Returns true if the ObjectID's are equal</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.op_Inequality(Habanero.BO.BOObjectID,Habanero.BO.BOObjectID)">
            <summary>
            Indicates if two BOObjectID objects have different values
            </summary>
            <param name="lhs">The first ObjectID to compare</param>
            <param name="rhs">The second ObjectID to compare</param>
            <returns>Returns true if the ObjectID's differ</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.Equals(System.Object)">
            <summary>
            Indicates if a specified BOObjectID has the same value as this one
            </summary>
            <param name="obj">The BOObjectID to compare with</param>
            <returns>Returns true if equal</returns>
        </member>
        <member name="M:Habanero.BO.BOObjectID.GetHashCode">
            <summary>
            Returns a hashcode of the ObjectID
            </summary>
            <returns>Returns a hashcode integer</returns>
        </member>
        <member name="P:Habanero.BO.BOObjectID.ObjectIDProp">
            <summary>
            Returns the objectID's property
            </summary>
        </member>
        <member name="P:Habanero.BO.BOObjectID.ObjectID">
            <summary>
             The globally unique object identifier for the object that this Primary Key represents. 
             This is the implementation of a fundamental Object Oriented concept 
             that every object should be globally uniquely identifiable.
             The value returned from this property will be the actual value of the primary key property 
             for objects with a <see cref="T:System.Guid"/> id, or it will be a newly created <see cref="T:System.Guid"/> 
             for objects with composite or non-guid primary keys.
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.TimeSpanComparer`1">
            <summary>
            Compares timespan properties
            </summary>
            TODO ERIC - no error checking to make sure property is a timespan
        </member>
        <member name="M:Habanero.BO.Comparer.TimeSpanComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a new comparer
            </summary>
            <param name="propName">The name of the property to compare on</param>
        </member>
        <member name="M:Habanero.BO.Comparer.TimeSpanComparer`1.Compare(`0,`0)">
            <summary>
            Compares two given objects on the property specified in the
            constructor
            </summary>
            <param name="x">The first object to compare (note_ that comparison
            is done on the property name specified in the constructor, not
            the object itself)</param>
            <param name="y">The second object to compare (note_ that comparison
            is done on the property name specified in the constructor, not
            the object itself)</param>
            <returns>Returns a negative number, zero or positive number,
            depending on whether x's timespan property is less, equal to or 
            greater than y's</returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropIntDataMapper">
            <summary>
             Implements a data mapper for a int Property
             The property data mapper conforms to the GOF strategy pattern <seealso cref="T:Habanero.BO.ClassDefinition.BOPropDataMapper"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropIntDataMapper.ConvertValueToString(System.Object)">
            <summary>
            This mapper method will convert any valid guid object to an 
              Invariant int string of format .ToString("B").ToUpperInvariant().
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropIntDataMapper.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This mapper method will convert any valid int string to a valid int object 
              (ParsePropValue) and will convert a DBNull to a null value to null.
            </summary>
            <param name="valueToParse">value to convert.</param>
            <param name="returnValue"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.NullLookupList">
            <summary>
            Provides an empty lookup-list
            </summary>
        </member>
        <member name="M:Habanero.BO.NullLookupList.GetLookupList">
            <summary>
            Returns a new empty lookup-list
            </summary>
            <returns>Returns an empty lookup-list</returns>
        </member>
        <member name="M:Habanero.BO.NullLookupList.GetLookupList(Habanero.Base.IDatabaseConnection)">
            <summary>
            Returns a new empty lookup-list
            </summary>
            <param name="connection">A parameter preserved for polymorphism.
            This can be set to null.</param>
            <returns>Returns an empty lookup-list</returns>
        </member>
        <member name="M:Habanero.BO.NullLookupList.GetIDValueLookupList">
             <summary>
             Returns the lookup list contents being held where the list is keyed on the list key 
              either a Guid, int or Business object i.e. the value being stored for the property.
             The display value can be looked up.
             </summary>
            <returns>The Key Value Lookup List</returns>
        </member>
        <member name="P:Habanero.BO.NullLookupList.PropDef">
            <summary>
             The property definition that this lookup list is for
            </summary>
        </member>
        <member name="P:Habanero.BO.NullLookupList.LimitToList">
            <summary>
             Whether to validate that the property set is in this list.  Eg, if the BOProp's value is set to an
             item not in the list and this value is True, a validation error will occur upon save.  If this 
             value is set to false no validation will occur.
            </summary>
        </member>
        <member name="P:Habanero.BO.NullLookupList.TimeOut">
            <summary>
            The TimeOut the time in Milliseconds before the cache expires. I.e. if the current time + Timeout is
            less than now then the lookup list will be reloaded else the currently loaded lookup list will be used. 
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlPropertyLoader">
            <summary>
            Loads property definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadProperty(System.String)">
            <summary>
            Loads the property definition from the xml string provided
            </summary>
            <param name="xmlPropDef">The xml string</param>
            <returns>Returns a property definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadProperty(System.Xml.XmlElement)">
            <summary>
            Loads the property definition from the xml element provided
            </summary>
            <param name="propertyElement">The xml property element</param>
            <returns>Returns a PropDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.Create">
            <summary>
            Creates the property definition from the data already loaded
            </summary>
            <returns>Returns a PropDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadFromReader">
            <summary>
            Loads the property definition from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadPropertyName">
            <summary>
            Loads the property name attribute from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadDisplayName">
            <summary>
            Loads the property display name from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadPropertyType">
            <summary>
            Loads the property type from the reader (the "assembly" attribute)
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadReadWriteRule">
            <summary>
            Loads the read-write rule from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadDefaultValue">
            <summary>
            Loads the default value from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadDatabaseFieldName">
            <summary>
            Loads the database field name from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadDescription">
            <summary>
            Loads the property description from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadCompulsory">
            <summary>
            Loads the attribute that determines whether the property is compulsory or not
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadAutoIncrementing">
            <summary>
            Loads the attribute that determines whether this property is auto-incrementing
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadKeepValuePrivate">
            <summary>
            Loads the attribute that determines whether the property must keep its value private or not
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPropertyLoader.LoadLength">
            <summary>
            Loads the length attribute used to set a maximum length for a string
            </summary>
        </member>
        <member name="T:Habanero.BO.QueryBuilder">
            <summary>
            Provides utility methods that create SelectQuery objects given a set of information.
            </summary>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.CreateSelectQuery(Habanero.Base.IClassDef)">
            <summary>
            Creates a SelectQuery using the given classdef without any Criteria. All information in the ClassDef will be taken into account
            (such as inheritance structures).
            </summary>
            <param name="classDef">The <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> to create the SelectQuery for.</param>
            <returns>A SelectQuery that can be used to load objects of the type the given ClassDef represents</returns>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.CreateSelectQuery(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Creates a SelectQuery using the given classdef with the given Criteria. All information in the ClassDef will be taken into account
            (such as inheritance structures).
            </summary>
            <param name="classDef">The <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> to create the SelectQuery for.</param>
            <param name="criteria">The criteria to be set on the SelectQuery</param>
            <returns>A SelectQuery that can be used to load objects of the type the given ClassDef represents</returns>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.CreateOrderCriteria(Habanero.Base.IClassDef,System.String)">
            <summary>
             Based on the class definition and the orderByString an <see cref="T:Habanero.Base.OrderCriteria"/> object is created.
             The orderCriteria object is a set of order by fields including information on their 
             business object properties and their dataSource. 
            </summary>
            <param name="classDef">The class definition to use for building the order criteria</param>
            <param name="orderByString">The orderby string to use for creating the <see cref="T:Habanero.Base.OrderCriteria"/>.</param>
            <returns>the newly created <see cref="T:Habanero.Base.OrderCriteria"/> object.</returns>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.PrepareCriteria(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
             Based on the class definition the given <see cref="T:Habanero.Base.Criteria"/> object is set up with the correct entity 
             names and field names, in preparation for using it as part of a <see cref="T:Habanero.BO.SelectQuery"/> that has been built using
             the <see cref="T:Habanero.BO.QueryBuilder"/> and the same <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>
            </summary>
            <param name="classDef">The class definition to use for preparing the <see cref="T:Habanero.Base.Criteria"/>.</param>
            <param name="criteria">The <see cref="T:Habanero.Base.Criteria"/> to prepare for use with a <see cref="T:Habanero.BO.SelectQuery"/>.</param>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.PrepareSource(Habanero.Base.IClassDef,Habanero.Base.Source@)">
            <summary>
             Uses the Class Definition to add the correct table name to the Source.
            </summary>
            <param name="classDef"></param>
            <param name="source"></param>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.PrepareDiscriminatorCriteria(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            </summary>
            <param name="classDef"></param>
            <param name="criteria"></param>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.CreateSelectCountQuery(Habanero.Base.IClassDef)">
            <summary>
             Creates a select query to return the count of objects in a table for that classdef
            </summary>
            <param name="classDef"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.QueryBuilder.CreateSelectCountQuery(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
             Creates a select query to return the count of objects in a table for that classdef with the criteria
            </summary>
            <param name="classDef">The class def for the class that the count is being returned</param>
            <param name="criteria">The Criteria for the class that the count is being returned</param>
            <returns></returns>
            <exception cref="T:System.ArgumentNullException"></exception>
        </member>
        <member name="T:Habanero.BO.DataSetProvider">
            <summary>
            Provides a super-class for data-set providers for business objects
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._collection">
            <summary>
            The <see cref="T:Habanero.Base.IBusinessObjectCollection"/> of <see cref="T:Habanero.Base.IBusinessObject"/>s that
              are being mapped in this DataSetProvider (i.e. are being copied to the <see cref="T:System.Data.DataTable"/>.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._uiGridProperties">
            <summary>
            The collection of <see cref="T:Habanero.BO.ClassDefinition.UIGridColumn"/>s that are being shown in this <see cref="T:System.Data.DataTable"/>.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._table">
            <summary>
            The <see cref="T:System.Data.DataTable"/> that is set up to represent the items in this collection.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._boAddedHandler">
            <summary>
            A handler for the <see cref="T:Habanero.Base.IBusinessObject"/> has been added to the <see cref="F:Habanero.BO.DataSetProvider._collection"/>.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._propUpdatedEventHandler">
            <summary>
            A handler for the <see cref="T:Habanero.Base.IBusinessObject"/> has had one of its properties updated
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._updatedHandler">
            <summary>
            A handler for the <see cref="T:Habanero.Base.IBusinessObject"/> has been persisted.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataSetProvider._removedHandler">
            <summary>
            A handler for the <see cref="T:Habanero.Base.IBusinessObject"/> has been removed from the <see cref="F:Habanero.BO.DataSetProvider._collection"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.#ctor(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Constructor to initialise a provider with a specified business
            object collection
            </summary>
            <param name="collection">The business object collection</param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.GetDataTable(Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Returns a data table with the UIGridDef provided
            </summary>
            <param name="uiGrid">The UIGridDef</param>
            <returns>Returns a DataTable object</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.GetDataView(Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Returns a data view for the UIGridDef provided
            </summary>
            <param name="uiGrid">The UIGridDef</param>
            <returns>Returns a DataTable object</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.UpdateBusinessObjectRowValues(Habanero.Base.IBusinessObject)">
            <summary>
             Updates the row values for the specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
            <param name="businessObject">The <see cref="T:Habanero.Base.IBusinessObject"/> for which the row values need to updated.</param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.DeregisterForTableEvents">
            <summary>
            Deregisters for all events to the <see cref="F:Habanero.BO.DataSetProvider._table"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.RegisterForTableEvents">
            <summary>
            Registers for all events to the <see cref="F:Habanero.BO.DataSetProvider._table"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.GetValues(Habanero.Base.IBusinessObject)">
            <summary>
            Gets a list of the property values to display to the user
            </summary>
            <param name="businessObject">The business object whose
            properties are to be displayed</param>
            <returns>Returns an array of values</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.DeregisterForBOEvents">
            <summary>
            Derigisters the Data Set Provider from all events raised by the BO collection.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.RegisterForEvents">
            <summary>
            Adds handlers to be called when updates occur
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.RegisterForBOEvents">
            <summary>
            Registers for all events from the <see cref="F:Habanero.BO.DataSetProvider._collection"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.UpdatedHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a <see cref="T:Habanero.Base.IBusinessObject"/> being updated
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.RemovedHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a business object being removed. Removes the
            data row that contains the object.
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.BOAddedHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a business object being added. Adds a new
            data row containing the object.
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.LoadBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
            Adds the Business Object to the DataTable
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.IDUpdatedHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Updates the grid ID column when the Business's ID is changed.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.InitialiseLocalData">
            <summary>
            Initialises the local data
            </summary>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.Find(System.Int32)">
            <summary>
            Returns the business object at the row number specified
            </summary>
            <param name="rowNum">The row number</param>
            <returns>Returns a business object</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.Find(System.Data.DataRow)">
            <summary>
            Returns the business object at the row specified
            </summary>
            <param name="row">The row related to the business object</param>
            <returns>Returns a business object</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.Find(System.Guid)">
            <summary>
            Returns a business object that matches the ID provided
            </summary>
            <param name="objectID">The ID</param>
            <returns>Returns a business object</returns>
        </member>
        <member name="M:Habanero.BO.DataSetProvider.FindRow(Habanero.Base.IBusinessObject)">
            <summary>
            Finds the row number in which a specified business object resides
            </summary>
            <param name="bo">The business object to search for</param>
            <returns>Returns the row number if found, or -1 if not found</returns>
        </member>
        <member name="P:Habanero.BO.DataSetProvider.RegisterForBusinessObjectPropertyUpdatedEvents">
            <summary>
             Gets and sets whether the property update handler shold be set or not.
             This is used to 
                change behaviour typically to differentiate behaviour
                between windows and web.<br/>
            Typically in windows every time a business object property is changed
               the grid is updated with Web the grid is updated only when the object
                is persisted.
             </summary>
        </member>
        <member name="P:Habanero.BO.DataSetProvider.ObjectInitialiser">
            <summary>
            Sets the object initialiser
            </summary>
        </member>
        <member name="P:Habanero.BO.DataSetProvider.IDColumnName">
            <summary>
             The column name used for the <see cref="T:System.Data.DataTable"/> column which stores the unique object identifier of the <see cref="T:Habanero.Base.IBusinessObject"/>.
             This column's values will always be the current <see cref="T:Habanero.Base.IBusinessObject"/>'s <see cref="P:Habanero.Base.IBusinessObject.ID"/> value.
            </summary>
        </member>
        <member name="T:Habanero.BO.IBusinessObjectCollectionInternal">
            <summary>
            This is an interface used for loading BusinessObjects from the Database.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOColLoaderHelper">
            <summary>
            This should never be used by a client application it is used by the DB Loading to clear collections
            via the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>
            etc and it is used by testing applications to call same methods.
            I.e. This is a Hack_ used so that we can call methods that we do not want as public methods
            on the Collection and Relationship but which we need to be able to call during Loading and/or Unit Testing.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOColLoaderHelper.ClearCurrentCollection(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Calls the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>'s ClearCurrentCollectionMethod
            </summary>
            <param name="col">A collection that implements the IBusinessObjectCollectionInternal</param>
        </member>
        <member name="M:Habanero.BO.BOColLoaderHelper.FireRefreshedEvent(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Calls the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>'s FireRefreshedEvent
            </summary>
            <param name="col">A collection that implements the IBusinessObjectCollectionInternal</param>
        </member>
        <member name="M:Habanero.BO.BOColLoaderHelper.Initialise(Habanero.Base.IRelationship)">
            <summary>
            Calls the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>'s Initialise
            </summary>
            <param name="relationship">A relationship that implements the IRelationshipForLoading</param>
        </member>
        <member name="M:Habanero.BO.BOColLoaderHelper.GetLoading(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Calls the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>'s Loading Property and returns result
            </summary>
            <param name="col">A collection that implements the IBusinessObjectCollectionInternal</param>
        </member>
        <member name="M:Habanero.BO.BOColLoaderHelper.SetLoading(Habanero.Base.IBusinessObjectCollection,System.Boolean)">
            <summary>
            Sets the <see cref="T:Habanero.BO.IBusinessObjectCollectionInternal"/>'s Loading Property and returns result
            </summary>
            <param name="col">A collection that implements the IBusinessObjectCollectionInternal</param>
            <param name="loading">The loading value to be set</param>
        </member>
        <member name="T:Habanero.BO.BusinessObjectCollection`1">
            <summary>
            Manages a collection of business objects.  This class also serves
            as a base class from which most types of business object collections
            can be derived.<br/>
            To create a collection of business objects, inherit from this 
            class. The business objects contained in this collection must
            inherit from BusinessObject.
            
              The business object co\llection differentiates between
              - business objects deleted from it since it was last synchronised with the datastore.
              - business objects added to it since it was last synchronised.
              - business objects created by it since it was last synchronised.
              - business objects removed from it since it was last synchronised.
            The Business Object collection maintains this list so as to be
              able to store the state of this collection when it was last loaded or persisted
              to the relevant datastore. This is necessary so that the collection can be
              restored (in the case where a user selects to can edits to a collection.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObjectCollection`1._removedBusinessObjects">
            <summary> Collection of Business Objects Removed From this collection </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.#ctor">
            <summary>
            Default constructor. 
            The <see cref="T:Habanero.Base.IClassDef"/> will be implied from <typeparamref name="TBusinessObject"/> and the Current Database Connection will be used.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.#ctor(Habanero.Base.IClassDef)">
            <summary>
            Use this constructor if you will only know <typeparamref name="TBusinessObject"/> at run time - <see cref="T:Habanero.BO.BusinessObject"/> will be the generic type
            and the objects in the collection will be determined from the <see cref="T:Habanero.Base.IClassDef"/> passed in.
            </summary>
            <param name="classDef">The <see cref="T:Habanero.Base.IClassDef"/> of the objects to be contained in this collection</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.#ctor(`0)">
            <summary>
            Constructor to initialize a new collection with a
            class definition provided by an existing business object
            </summary>
            <param name="bo">The business object whose class definition
            is used to initialize the collection</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Reconstitutes the collection from a stream that was serialized.
            </summary>
            <param name="info"></param>
            <param name="context"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.FireBusinessObjectAdded(`0)">
            <summary>
            Calls the <see cref="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectAdded"/>() handler
            </summary>
            <param name="bo">The business object added</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.FireBusinessObjectRemoved(`0)">
            <summary>
            Calls the <see cref="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectRemoved"/>() handler
            </summary>
            <param name="bo">The business object removed</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Add(`0)">
            <summary>
            Adds a business object to the collection
            </summary>
            <param name="bo">The business object to add</param>
            <exception cref="T:System.ArgumentNullException"><c>bo</c> is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.AddInternal(`0)">
            <summary>
            Adds a business object to the collection of business objects without raising any events.
            But still verifies the object does not exist in Created, removed etc collections
            </summary>
            <param name="bo">The business object to be added to the collection</param>
            <returns>a value indicating whether the object was added to the collection or not.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.AddToPersistedCollection(`0)">
            <summary>
            Allows the adding of business objects to the collection without
            this causing the added event to be fired.
            This is intended to be used for internal use only.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.DeletedEventHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a business object being deleted
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.RestoredEventHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a Business object being restored.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.SavedEventHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of the Business object becoming invalid.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Add(Habanero.BO.BusinessObjectCollection{`0})">
            <summary>
            Copies the business objects in one collection across to this one
            </summary>
            <param name="col">The collection to copy from</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Add(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds the business objects from col into this collection
            </summary>
            <param name="col"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Add(`0[])">
            <summary>
             Adds the specified business objects to this collection
            </summary>
            <param name="businessObjects">A parameter array of business objects to add to the collection</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Refresh">
            <summary>
            Refreshes the business objects in the collection
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadAll">
            <summary>
            Loads the entire collection for the type of object.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadAll(System.String)">
            <summary>
            Loads the entire collection for the type of object,
            loaded in the order specified. 
            To load the collection in any order use the <see cref="M:Habanero.BO.BusinessObjectCollection`1.LoadAll"/> method.
            </summary>
            <param name="orderByClause">The order-by clause</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Load(System.String,System.String)">
            <summary>
            Loads business objects that match the search criteria provided,
            loaded in the order specified.  
            Use empty quotes, (or the <see cref="M:Habanero.BO.BusinessObjectCollection`1.LoadAll(System.String)"/> method) to load the
            entire collection for the type of object.
            </summary>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Load(Habanero.Base.Criteria,System.String)">
            <summary>
            Loads business objects that match the search criteria provided in
            an expression, loaded in the order specified
            </summary>
            <param name="searchExpression">The search expression</param>
            <param name="orderByClause">The order-by clause</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadWithLimit(System.String,System.String,System.Int32)">
            <summary>
            Loads business objects that match the search criteria provided
            and an extra criteria literal, 
            loaded in the order specified, 
            and limiting the number of objects loaded
            </summary>
            <param name="searchCriteria">The search expression</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="limit">The limit</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadWithLimit(Habanero.Base.Criteria,System.String,System.Int32)">
            <summary>
            Loads business objects that match the search criteria provided in
            an expression and an extra criteria literal, 
            loaded in the order specified, 
            and limiting the number of objects loaded
            </summary>
            <param name="searchExpression">The search expression</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="limit">The limit</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadWithLimit(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of TBusinessObjects specified as follows:
            If you want record 6 to 15 then 
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10. 
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderByClause"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 will be returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by <c>MySql</c> etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.LoadWithLimit(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of TBusinessObjects specified as follows:
            If you want record 6 to 15 then
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderByClause"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 will be returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by <c>MySql</c> etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="searchCriteria">The search criteria</param>
            <param name="orderByClause">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Clear">
            <summary>
            Clears the collection
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Contains(`0)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection`1" /> contains a specific value.
            </summary>
            <returns>
            true if <paramref name="item" /> is found in the <see cref="T:System.Collections.Generic.ICollection`1" />; otherwise, false.
            </returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.ICollection`1" />.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in <paramref name="array" /> at which copying begins.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array" /> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex" /> is less than 0.</exception>
            <exception cref="T:System.ArgumentException"><paramref name="array" /> is multidimensional.-or-<paramref name="arrayIndex" /> is equal to or greater than the length of <paramref name="array" />.-or-The number of elements in the source <see cref="T:System.Collections.Generic.ICollection`1" /> is greater than the available space from <paramref name="arrayIndex" /> to the end of the destination <paramref name="array" />.-or-Type <typeparamref name="TBusinessObject"/> cannot be cast automatically to the type of the destination <paramref name="array" />.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.IndexOf(`0)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1" />.
            </summary>
            <returns>
            The index of <paramref name="item" /> if found in the list; otherwise, -1.
            </returns>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1" />.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Insert(System.Int32,`0)">
            <summary>
            Inserts an item to the <see cref="T:System.Collections.Generic.IList`1" /> at the specified index.
            </summary>
            <param name="index">The zero-based index at which <paramref name="item" /> should be inserted.</param>
            <param name="item">The object to insert into the <see cref="T:System.Collections.Generic.IList`1" />.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.RemoveAt(System.Int32)">
            <summary>
            Removes the business object at the index position specified
            </summary>
            <param name="index">The index position to remove from</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Remove(`0)">
            <summary>
            Removes the specified business object from the collection
            </summary>
            <param name="bo">The business object to remove</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.ICollection"/> to an
            <see cref="T:System.Array"/>, starting at a particular 
            <see cref="T:System.Array"/> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"/> that is the 
            destination of the elements copied from <see cref="T:System.Collections.ICollection"/>. 
            The <see cref="T:System.Array"/> must have zero-based indexing.</param>
            <param name="index">The zero-based index in <paramref name="array"/> at which copying begins. </param>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index"/> is less than zero. </exception>
            <exception cref="T:System.ArgumentException"><paramref name="array"/> is multidimensional. 
            -or- <paramref name="index"/> is equal to or greater than the length of <paramref name="array"/>. 
            -or-  The number of elements in the source <see cref="T:System.Collections.ICollection"/> is greater than 
            the available space from <paramref name="index"/> to the end of the destination <paramref name="array"/>. </exception>
            <exception cref="T:System.ArgumentException">The type of the source 
            <see cref="T:System.Collections.ICollection"/> cannot be cast automatically to
            the type of the destination <paramref name="array"/>. </exception>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#BO#IBusinessObjectCollectionInternal#ClearCurrentCollection">
            <summary>
             Clears only the current collection i.e. the persisted, removed, added and created lists 
                are retained.
            </summary>
             Note_: This is used by reflection by the collection loader.
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.RemoveInternal(`0,System.Boolean@)">
            <summary>
            Removes the specified business object from the collection. This is used when refreshing
            a collection so that any overridden behavior (from overriding Remove) is not applied
            when loading and refreshing.
            </summary>
            <param name="businessObject"></param>
            <param name="fireEvent">Indicates whether to fire a removed event after calling this method.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.IsValid">
            <summary>
            Indicates whether all of the business objects in the collection
            have valid values
            </summary>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.IsValid(System.String@)">
            <summary>
            Indicates whether all of the business objects in the collection
            have valid values, amending an error message if any object is
            invalid
            </summary>
            <param name="errorMessage">An error message to amend</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Find(System.Guid)">
            <summary>
            Finds a business object that has the key string specified.<br/>
            The format of the search term is strict, so that a Guid ID
            may be stored as "boIDname=########-####-####-####-############".
            In the case of such Guid ID's, rather use the FindByGuid() function.
            Composite primary keys may be stored otherwise, such as a
            concatenation of the key names.
            </summary>
            <param name="key">The object identifier as a Guid</param>
            <returns>Returns the business object if found, or null if not</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Find(System.Guid)">
            <summary>
            Finds a business object that has the key string specified.<br/>
            The format of the search term is strict, so that a Guid ID
            may be stored as "boIDname=########-####-####-####-############".
            In the case of such Guid ID's, rather use the FindByGuid() function.
            Composite primary keys may be stored otherwise, such as a
            concatenation of the key names.
            </summary>
            <param name="key">The object identifier as a Guid</param>
            <returns>Returns the business object if found, or null if not</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.FindByGuid(System.Guid)">
            <summary>
            Finds a business object in the collection that contains the
            specified <see cref="T:System.Guid"/> ID
            </summary>
            <param name="searchTerm">The <see cref="T:System.Guid"/> to search for</param>
            <returns>Returns the business object if found, or null if not
            found</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Intersection(Habanero.BO.BusinessObjectCollection{`0})">
            <summary>
            Returns an intersection of the set of objects held in this
            collection with the set in another specified collection (an
            intersection refers to a set of objects held in common between
            two sets)
            </summary>
            <param name="col2">Another collection to intersect with</param>
            <returns>Returns a new collection containing the intersection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Union(Habanero.BO.BusinessObjectCollection{`0})">
            <summary>
            Returns a union of the set of objects held in this
            collection with the set in another specified collection (a
            union refers to a set of all objects held in either of two sets)
            </summary>
            <param name="col2">Another collection to unite with</param>
            <returns>Returns a new collection containing the union</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Clone">
            <summary>
            Returns a new collection that is a copy of this collection
            </summary>
            <returns>Returns the cloned copy</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Clone``1">
            <summary>
            Returns a new collection that is a copy of this collection
            </summary>
            <typeparam name="DestType">The <c>BusinessObject</c> type for this collection's objects to be cast to. </typeparam>
            <returns>Returns the cloned copy</returns>
            <exception cref="T:System.InvalidCastException">Cannot cast a collection of type <typeparamref name="TBusinessObject"/>
            to a collection of type <typeparamref name="DestType"/>.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Sort(System.String,System.Boolean,System.Boolean)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="propertyName">The property name to sort on</param>
            <param name="isBoProperty">Whether the property is a business
            object property</param>
            <param name="isAscending">Whether to sort in ascending order, set
            false for descending order</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Sort(System.Collections.Generic.IComparer{`0})">
            <summary>
             Sorts the Collection using the comparer delegate
            </summary>
            <param name="comparer">The Delegate used to sort</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Sort">
            <summary>
            Sorts the Collection by the Order Criteria Set up during the Loading of this collection.
            For <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/>'s this will be the 
            Order Criteria set up in the orderBy in the <see cref="T:Habanero.Base.IClassDef"/> for 
            the <typeparamref name="TBusinessObject"/> type (i.e. in the <c>ClassDef.xml</c>).
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Sort(System.Collections.IComparer)">
            <summary>
            Sorts the collection by the property specified. The second parameter
            indicates whether this property is a business object property or
            whether it is a property defined in the code.  For example, a full name
            would be a code-calculated property that is not itself a business
            object property, even though it uses the BO properties of first name
            and surname, and the argument would thus be set as false.
            </summary>
            <param name="comparer">The property name to sort on</param>
            <exception cref="T:System.ArgumentNullException"><c>comparer</c> is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.GetSortedList(System.String,System.Boolean)">
            <summary>
            Returns a list containing all the objects sorted by the property
            name and in the order specified
            </summary>
            <param name="propertyName">The property name</param>
            <param name="isAscending">True for ascending, false for descending
            </param>
            <returns>Returns a sorted list</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.GetSortedCollection(System.String,System.Boolean)">
            <summary>
            Returns a copied business object collection with the objects sorted by 
            the property name and in the order specified
            </summary>
            <param name="propertyName">The property name</param>
            <param name="isAscending">True for ascending, false for descending
            </param>
            <returns>Returns a sorted business object collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.GetList">
            <summary>
            Returns the business object collection as an <see cref="T:System.Collections.IList"/>.
            </summary>
            <returns>Returns an <see cref="T:System.Collections.IList"/> object</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.SaveAll">
            <summary>
            Commits to the database all the business objects that are either
            new or have been altered since the last committal
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.SaveAllInTransaction(Habanero.Base.ITransactionCommitter)">
            <summary>
            Adds all the Business objects to the <paramref name="transaction"/> including the 
            Business objects in the Added, Created, Removed and Marked for deleted collections.
            And then commits the <paramref name="transaction"/> to the DataSource.
            </summary>
            <param name="transaction"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.CancelEdits">
            <summary>
            Restores all the business objects to their last persisted state, that
            is their state and values at the time they were last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.RestoreAll">
            <summary>
            Restores all the business objects to their last persisted state, that
            is their state and values at the time they were last saved to the database
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Clone">
            <summary>
            Returns a new collection that is a copy of this collection
            </summary>
            <returns>Returns the cloned copy</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#IndexOf(Habanero.Base.IBusinessObject)">
            <summary>
            Determines the index of a specific item in the <see cref="T:System.Collections.Generic.IList`1"></see>.
            </summary>
            <param name="item">The object to locate in the <see cref="T:System.Collections.Generic.IList`1"></see>.</param>
            <returns>
            The index of item if found in the list; otherwise, -1.
            </returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Add(Habanero.Base.IBusinessObject)">
            <summary>
            Adds an item to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to add to the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">
            The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Contains(Habanero.Base.IBusinessObject)">
            <summary>
            Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"></see> contains a specific value.
            </summary>
            <returns>
            True if item is found in the <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            </returns>
            <param name="item">The object to locate in the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#CopyTo(Habanero.Base.IBusinessObject[],System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"></see> to an <see cref="T:System.Array"></see>, starting at a particular <see cref="T:System.Array"></see> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied from <see cref="T:System.Collections.Generic.ICollection`1"></see>. The <see cref="T:System.Array"></see> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentNullException">Array is null.</exception>
            <exception cref="T:System.ArgumentException">Array is multidimensional or <paramref name="arrayIndex"/>
            is equal to or greater than the length of array.-or-The number of elements in
            the source <see cref="T:System.Collections.Generic.ICollection`1"></see> is 
            greater than the available space from <paramref name="arrayIndex"/> to the end of the destination array, or 
            Type T cannot be cast automatically to the type of the destination array.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Remove(Habanero.Base.IBusinessObject)">
            <summary>
            Removes the first occurrence of a specific object from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </summary>
            <param name="item">The object to remove from the <see cref="T:System.Collections.Generic.ICollection`1"></see>.</param>
            <exception cref="T:System.NotSupportedException">The <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.</exception>
            <returns>
            True if item was successfully removed from the 
            <see cref="T:System.Collections.Generic.ICollection`1"></see>; otherwise, false.
            This method also returns false if item is not found in the original
            <see cref="T:System.Collections.Generic.ICollection`1"></see>.
            </returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.CreateBusinessObject">
            <summary>
            Creates a business object of type <typeparamref name="TBusinessObject"/>
            Adds this BO to the <see cref="P:Habanero.BO.BusinessObjectCollection`1.CreatedBusinessObjects"/> list. When the object is saved it will
            be added to the actual Business Object collection.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.CreateNewBusinessObject">
            <summary>
            Creates a new <typeparamref name="TBusinessObject"/> for this <c>BusinessObjectCollection</c>.
            The new <typeparamref name="TBusinessObject"/> is not added into the collection.
            </summary>
            <returns>A new <typeparamref name="TBusinessObject"/></returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">A <c>BusinessObject</c> of type <typeparamref name="TBusinessObject"/> cannot be created.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.AddCreatedBusinessObject(`0)">
            <summary>
            Adds a new <c>BusinessObject</c> to the collection. If you call this you must
            call <see cref="M:Habanero.BO.BusinessObjectCollection`1.FireBusinessObjectAdded(`0)"/> to raise the event (outside of the
            lock) This should be called from inside a lock
            </summary>
            <param name="newBO"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#CreateBusinessObject">
            <summary>
            Creates a business object of type <typeparamref name="TBusinessObject"/>
            Adds this BO to the <see cref="P:Habanero.BO.BusinessObjectCollection`1.CreatedBusinessObjects"/> list. When the object is saved it will
            be added to the actual <see cref="T:Habanero.BO.BusinessObject"/> collection.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.MarkForDelete(`0)">
            <summary>
             Marks the business object as MarkedForDeletion and places the object
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.MarkForDeleteAt(System.Int32)">
            <summary>
             Marks the business object as MarkedForDeletion and places the 
            </summary>
            <param name="index">The index position to remove from</param>if index does not exist in col
             <exception cref="T:System.ArgumentOutOfRangeException"></exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1" /> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Find(System.Predicate{`0})">
            <summary>
             Searches for an element that matches the conditions defined by the specified predicate, 
             and returns the first occurrence within the entire <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions of the element to search for.</param>
            <returns>The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type TBusinessObject.</returns>
             <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.FindAll(System.Predicate{`0})">
            <summary>
             Searches for all elements that match the conditions defined by the specified predicate, 
             and returns a List of all items found in the entire <see cref="T:System.Collections.Generic.List`1"/>.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions of the element to search for.</param>
            <returns>The Elements that match the conditions defined by the specified predicate.</returns>
             <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.ForEach(System.Action{`0})">
            <summary>
             Loops through each item in the Collection and Applies the Action
            </summary>
            <param name="action"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.RemoveAll(System.Predicate{`0})">
            <summary>
             Removes all the items that Match the Predicate.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/>
            delegate that defines the conditions of the element to remove</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.ToArray">
            <summary>
             Copies the elements of the 
             <see cref="T:Habanero.BO.BusinessObjectCollection`1"/> to a new array.
            </summary>
            <returns>An array containing copies of the elements of the 
            <see cref="T:Habanero.BO.BusinessObjectCollection`1"/>.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.ConvertAll``1(System.Converter{`0,``0})">
            <summary>
             Converts the elements in the current 
             <see cref="T:Habanero.BO.BusinessObjectCollection`1"/> to another type, and
             returns a list containing the converted elements.
            </summary>
            <param name="converter">A <see cref="T:System.Converter`2"/> delegate
            that converts each element from one type to another type.</param>
            <typeparam name="TOutput">The type of the elements of the target array.
            </typeparam>
            <returns>A <see cref="T:System.Collections.Generic.List`1"/> of the target type
            containing the converted elements from the current 
            <see cref="T:Habanero.BO.BusinessObjectCollection`1"/>.</returns>
             <exception cref="T:System.ArgumentNullException">converter is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.Exists(System.Predicate{`0})">
            <summary>
             Determines whether the <see cref="T:Habanero.BO.BusinessObjectCollection`1"/> contains elements that match the conditions defined by the specified predicate.
            </summary>
            <param name="match">The <see cref="T:System.Predicate`1"/> delegate that defines the conditions of the elements to search for.</param>
            <returns>
             true if the <see cref="T:Habanero.BO.BusinessObjectCollection`1"/> contains one or more elements that match the conditions defined by the specified predicate; otherwise, false.
             </returns>
             <exception cref="T:System.ArgumentNullException">match is null.</exception>
        </member>
        <member name="M:Habanero.BO.BusinessObjectCollection`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
             Adds the elements of the specified collection to the end of the <see cref="T:Habanero.BO.BusinessObjectCollection`1"/>.
            </summary>
            <param name="collection">The collection whose elements should be added to the end of the <see cref="T:Habanero.BO.BusinessObjectCollection`1"/>. 
             The collection itself cannot be null, but it can contain elements that are null, if type <typeparamref name="TBusinessObject"/> is a reference type.</param>
             <exception cref="T:System.ArgumentNullException">collection is null.</exception>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.CollectionRefreshed">
            <summary>
            Event Fires whenever the Collection is Refreshed.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#BusinessObjectAdded">
            <summary>
            Handles the event of a business object being added
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectAdded">
            <summary>
            Handles the event of a business object being added
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#BusinessObjectRemoved">
            <summary>
            Handles the event of a business object being removed
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectRemoved">
            <summary>
            Handles the event of a business object being removed
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#BusinessObjectUpdated">
            <summary>
            Handles the event of any business object in this collection being Updated(i.e the BO is saved, or edits are canceled).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.Updated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectUpdated">
            <summary>
            Handles the event of any business object in this collection being Updated(i.e the BO is saved, or edits are canceled).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.Updated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#BusinessObjectPropertyUpdated">
            <summary>
            Handles the event of any business object in this collection being edited (i.e. a property value is changed).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.PropertyUpdated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectPropertyUpdated">
            <summary>
            Handles the event of any business object in this collection being edited (i.e. a property value is changed).
            See the <see cref="T:Habanero.Base.IBusinessObject"/>.<see cref="E:Habanero.Base.IBusinessObject.PropertyUpdated"/> event.
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#BusinessObjectIDUpdated">
            <summary>
            Handles the event when a <c>BusinessObject</c> in the collection has an ID that is Updated(i.e one of the properties of the ID is edited).
            </summary>
        </member>
        <member name="E:Habanero.BO.BusinessObjectCollection`1.BusinessObjectIDUpdated">
            <summary>
            Handles the event when a <c>BusinessObject</c> in the collection has an ID that is Updated(i.e one of the properties of the ID is edited).
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <returns>
            The element at the specified index.
            </returns>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="index" /> is not a valid index in the <see cref="T:System.Collections.Generic.IList`1" />.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1" /> is read-only.</exception>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Count">
            <summary>
            Gets the number of elements contained in the <see cref="T:System.Collections.ICollection" />.
            </summary>
            <returns>
            The number of elements contained in the <see cref="T:System.Collections.ICollection" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.IsDirty">
            <summary>
            Indicates whether any of the business objects have been amended 
            since they were last persisted
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.SelectQuery">
            <summary>
             The select query that is used to load this business object collection.
            </summary>
             <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">A collection's select query cannot be set to null</exception>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.ClassDef">
            <summary>
            Returns the class definition of the collection
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.TimeLastLoaded">
            <summary>
            The <see cref="T:System.DateTime"/> that the Collection was loaded.
            This is used to determine whether the Collection should be Reloaded when 
            the MultipleRelationship's get <c>BusinessObjectCollection</c> is called.
            </summary>
            <summary>
            The <see cref="T:System.DateTime"/> that the Collection was loaded.
            This is used to determine whether the Collection should be Reloaded when 
            the MultipleRelationship's get <c>BusinessObjectCollection</c> is called.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#Item(System.Int32)">
            <summary>
            Gets or sets the element at the specified index.
            </summary>
            <param name="index">The zero-based index of the element to get or set.</param>
            <exception cref="T:System.ArgumentOutOfRangeException">index is not a valid index in the <see cref="T:System.Collections.Generic.IList`1"></see>.</exception>
            <exception cref="T:System.NotSupportedException">The property is set and the <see cref="T:System.Collections.Generic.IList`1"></see> is read-only.</exception>
            <returns>The element at the specified index.</returns>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.System#Collections#IList#IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only.
            </summary>
            
            <returns>
            true if the <see cref="T:System.Collections.Generic.ICollection`1"></see> is read-only; otherwise, false.
            </returns>
            
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#CreatedBusinessObjects">
            <summary>
            Returns a list of the business objects that have been created via the
              collection but have not been persisted to the database.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.CreatedBusinessObjects">
            <summary>
            The list of business objects that have been created via this collection (see <see cref="M:Habanero.BO.BusinessObjectCollection`1.CreateBusinessObject"/>) and have not
            yet been persisted.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#PersistedBusinessObjects">
            <summary>
            Returns a collection representing the BusinessObjects that were last read or saved to the 
               datastore. This collection thus represents an exact list of objects as per the database.
               this collection excludes Created and Added BusinessObjects but includes Deleted and Removed Business
               objects.
            Hack: This method was created to overcome the shortfall of using a Generic Collection.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.PersistedBusinessObjects">
            <summary>
            Returns a collection representing the BusinessObjects that were last read or saved to the 
               datastore. This collection thus represents an exact list of objects as per the database.
               this collection excludes Created and Added BusinessObjects but includes Deleted and Removed Business
               objects.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#RemovedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently removed for the
              collection but have not yet been persisted to the database.
            </summary>
            Hack: This method was created returning a type <see cref="T:System.Collections.IList"/> to overcome problems with 
              <see cref="T:Habanero.BO.BusinessObjectCollection`1"/> being a generic collection.
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.RemovedBusinessObjects">
            <summary>
             Returns a collection of business objects that have been removed from the collection
             but the collection has not yet been persisted.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#MarkedForDeleteBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently marked for deletion for the
              collection but have not necessarily been persisted to the database.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.MarkedForDeleteBusinessObjects">
            <summary>
             Returns a collection of business objects that have been marked for deletion from the collection
             but the collection has not yet been persisted.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#Base#IBusinessObjectCollection#AddedBusinessObjects">
            <summary>
            Returns a list of the business objects that are currently added for the
              collection but have not necessarily been persisted to the database.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.AddedBusinessObjects">
            <summary>
            The list of business objects that have been added to this Business Object 
            collection (<see cref="M:Habanero.BO.BusinessObjectCollection`1.Add(`0)"/>) and have not
            yet been persisted.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.Habanero#BO#IBusinessObjectCollectionInternal#Loading">
            <summary>
            This property is set to true while loading the collection from the datastore so as to 
            prevent certain checks being done (e.g. Adding persisted business objects to a collection.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectCollection`1.TotalCountAvailableForPaging">
            <summary>
             This property is used to return the total number of records available for paging.
             It is set internally by the loader when the collection is being loaded.
            </summary>
        </member>
        <member name="T:Habanero.BO.IBusinessObjectLoader">
            <summary>
            Defines methods for loading BusinessObjects and BusinessObjectCollections for any datastore e.g. Database 
            XML File, CSV.  For any new type of data store (eg file based, or TCP, or
            web service based etc), this interface must be implemented. To enable saving to the data store a subclass of  
            <see cref="T:Habanero.BO.TransactionCommitter"/> must be implemented for your data store type, and class that implements  
            <see cref="T:Habanero.BO.IDataAccessor"/>  must be created that links these two classes by providing a method of getting the loader 
            and a transactioncommitter.  This class is accessed via the BORegistry.
            
            To load a collection from scratch you might do this:
            <code>
              Criteria surnameCriteria = new Criterea("Surname", Criteria.ComparisonOp.Equals, "Smith");
              BusinessObjectCollection&lt;Person&gt; personCol = 
                     BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection&lt;Person&gt;(surnameCriteria);
            </code>
            
            You can pass in your own SelectQuery object if you wish to create a custom select query to load your object or collection.
            By default a SelectQuery is built up from the ClassDef loaded for the type, taking into account inheritance structures.
            
            When loading one or more object from the datastore the Business Object loader should check to see if it is already loaded in 
            the object manager first. If the object does not exist in the object manager then it must be loaded from the datastore and added
            to the object manager <see cref="T:Habanero.BO.BusinessObjectManager"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject``1(Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of type T, using the Primary key given as the criteria
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the Primary key given as the criteria
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject``1(Habanero.Base.Criteria)">
            <summary>
            Loads a business object of type T, using the criteria given
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found, an error is raised</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, 
            using the SelectQuery given. It's important to make sure that the ClassDef parameter given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject``1(System.String)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObject(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteriaString">The criteria to use to load the business object must be of formst "PropName = criteriaValue" e.g. "Surname = Powell"</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an error is raised</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetRelatedBusinessObject``1(Habanero.BO.SingleRelationship{``0})">
            <summary>
            Loads a business object of type T using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <typeparam name="T">The type of the business object to load</typeparam>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of type T if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetRelatedBusinessObject(Habanero.BO.ISingleRelationship)">
            <summary>
            Loads a business object using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of the type defined by the relationship if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of Ts specified as follows:
            If you want record 6 to 15 then 
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderCriteria"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteria">The search criteria</param>
            <param name="orderCriteria">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of Ts specified as follows:
            If you want record 6 to 15 then 
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderCriteriaString"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteriaString">The search criteria</param>
            <param name="orderCriteriaString">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria,Habanero.Base.IOrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads the Business object collection with the appropriate items.
            See <see cref="!:GetBusinessObjectCollection&lt;T&gt;(Criteria,OrderCriteria,int,int,out int)"/> for a full explanation.
            </summary>
            <param name="def"></param>
            <param name="criteria"></param>
            <param name="orderCriteria"></param>
            <param name="firstRecordToLoad"></param>
            <param name="numberOfRecordsToLoad"></param>
            <param name="records"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria,Habanero.Base.IOrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="searchCriteria">The select query to use to load from the data source</param>
            <param name="orderCriteria">The order that the collections must be loaded in e.g. Surname, FirstName</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="searchCriteria">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.Refresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.Refresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.Refresh(Habanero.Base.IBusinessObject)">
            <summary>
            Reloads a businessObject from the datasource using the id of the object.
            A dirty object will not be refreshed from the database and the appropriate error will be raised.
            Cancel all edits before refreshing the object or save before refreshing.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">Exception thrown if the object is dirty and refresh is called.</exception>
            <param name="businessObject">The businessObject to refresh</param>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetRelatedBusinessObjectCollection``1(Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetRelatedBusinessObjectCollection(System.Type,Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <param name="type">The type of collection to load. This must be a class that implements IBusinessObject</param>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectByValue(Habanero.Base.IClassDef,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="classDef">The Class definition of the Business Object to load</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectByValue(System.Type,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="type">The type of business object to be loaded</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetBusinessObjectByValue``1(System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectLoader.GetCount(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.IntComparer`1">
            <summary>
            Compares two business objects on the integer property specified 
            in the constructor
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.IntComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the integer property
            on which two business objects will be compared using the Compare()
            method
            </summary>
            <param name="propName">The integer property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.IntComparer`1.Compare(`0,`0)">
            <summary>
            Compares two business objects on the integer property specified in 
            the constructor
            </summary>
            <param name="x">The first object to compare</param>
            <param name="y">The second object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first integer is less, equal to or more
            than the second</returns>
        </member>
        <member name="T:Habanero.BO.TransactionCommitterRemote">
            <summary>
            A Transaction committer for commiting items to a remote data source 
            e.g. via remoting.
            </summary>
        </member>
        <member name="T:Habanero.BO.TransactionalBusinessObject">
            <summary>
             This is a base class which is used as a wrapper (
               GOF Decorator/Wrapper - 'Design Patterns, Elements Of Reusable Object Oriented Software' 
               around a business object). This class is used so that the Business Object can be 
               isolated from any logic regarding updating changes to a datasource.
             This class along with the TransactionCommiter implement transactional and persistence 
             strategies for the business object.
             The TransactionBusinessObject also implements the DataMapper (165) and the MetaData mapping (306) patterns.
               Fowler - Patterns of Enterprise Application Architecture.
              
             This class is used by the <see cref="T:Habanero.BO.TransactionCommitter"/>. The <see cref="T:Habanero.BO.TransactionCommitter"/> 
               class contans all the required explanations of how these classes work together.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
             Creates a TransactionalBusinessObject that wraps the <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.IsNew">
            <summary>
            Whether the business object's state is new
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.IsNewAndDeleted">
            <summary>
            returns true if the underlying business object is new and deleted. I.e. it is in 
            an invalid state which means that it has already been deleted from the database.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.TransactionID">
            <summary>
            </summary>
            <returns>The ID that uniquelty identifies this item of the transaction. In the case of business objects the object Id.
             for non business objects that no natural id exists for the particular transactional item a guid that uniquely identifies 
             transactional item should be generated. This is used by the transaction committer to ensure that the transactional item
             is not added twice in error.</returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.IsValid(System.String@)">
            <summary>
            Indicates whether all of the property values are valid
            </summary>
            <param name="invalidReason">A string to modify with a reason
            for any invalid values</param>
            <returns>Returns true if all are valid</returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.GetDuplicateObjectErrMsg(Habanero.BO.BOKey,System.String)">
            <summary>
            </summary>
            <param name="boKey"></param>
            <param name="classDisplayName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.UpdateObjectBeforePersisting(Habanero.Base.ITransactionCommitter)">
            <summary>
             Executes any custom code required by the business object before it is persisted to the database.
             This has the additionl capability of creating or updating other business objects and adding these
             to the transaction committer.
            </summary>
            <param name="transactionCommitter">the transaction committer that is executing the transaction</param>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.CheckForConcurrencyErrors">
            <summary>
             Checks the underlying business object for any concurrency control errors before trying to commit to 
             the datasource
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.HasDuplicateIdentifier(System.String@)">
            <summary>
             returns true if there is already an object in the database with the same primary identifier (primary key)
              or with the same alternate identifier (alternate key)
            </summary>
            <param name="errMsg"></param>
            <returns></returns>
             TODO: This uses the BORegistry.DataAccessor that is set up.  It should possibly use the same DataAccessor as the
             transactioncommitter that is controlling it so that it can be added to the same transaction.
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.CheckCanDelete(System.String@)">
            <summary>
            Checks whether the Wrapped business object can be deleted.
            </summary>
            <param name="errMsg"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObject.CanBePersisted(System.String@)">
            <summary>
            Checks whether the Wrapped business object can be Persisted.
            </summary>
            <param name="errMsg"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.TransactionalBusinessObject.BusinessObject">
            <summary>
             Returns the business object that this objects decorates.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionalBusinessObject.IsDeleted">
            <summary>
            Whether the business object's state is deleted
            </summary>
        </member>
        <member name="T:Habanero.BO.SupportsAutoIncrementingFieldBO">
            <summary>
             Implements an auto Incrementing field pattern for a business object. The appropriate property(s) 
             must be set as autoincrementing in the property definition.
            </summary>
        </member>
        <member name="M:Habanero.BO.SupportsAutoIncrementingFieldBO.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
             Constructs the autoincremeing fieldBO object with the appropriate business object.
            </summary>
            <param name="bo"></param>
        </member>
        <member name="M:Habanero.BO.SupportsAutoIncrementingFieldBO.SetAutoIncrementingFieldValue(System.Int64)">
            <summary>
            </summary>
            <param name="value">sets the objects autoincremented number from the database</param>
        </member>
        <member name="T:Habanero.BO.RelatedBusinessObjectCollection`1">
            <summary>
             This is a collection of business objects as utilised in an object collection e.g. Person has many addreses.
             This person.GetAddresses will return a collection of addresses for the person where the collection is of type
             RelatedBusinessObjectCollection
            </summary>
            <typeparam name="TBusinessObject"></typeparam>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.#ctor(Habanero.Base.IRelationship)">
            <summary>
             The related business object is constructed with the parent Business object of this 
             relationship as well the relationship name.
            </summary>
            <param name="relationship"></param>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.AddInternal(`0)">
            <summary>
            Adds a business object to the collection
            </summary>
            <param name="bo">The business object to add</param>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.Remove(`0)">
            <summary>
            Removes the specified business object from the collection
            </summary>
            <param name="bo">The business object to remove</param>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.RemoveInternal(`0)">
            <summary>
            A method for removing the busines object without doing any checks for relationship type.
            This is needed for cases where a parent business object that has created composite children has
            <see cref="M:Habanero.Base.IBusinessObject.CancelEdits"/> called. The parent business objects should
            then cancel all its children
            </summary>
            <param name="bo">The child business object that needs to be removed from the collection.</param>
            <returns>true if the business object is removed, otherwise false.</returns>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.SaveAll">
            <summary>
            Commits to the database all the business objects that are either
            new or have been altered since the last committal
            </summary>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.CreateNewBusinessObject">
            <summary>
            Creates a new TBusinessObject for this RelatedBusinessObjectCollection.
            The new BusinessObject has all of its foreign key properties set, but is not added in to the collection yet.
            </summary>
            <returns>A new TBusinessObject.</returns>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.RestoredEventHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of a Business object being restored.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Habanero.BO.RelatedBusinessObjectCollection`1.SavedEventHandler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            Handles the event of the Business object becoming invalid.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.RelPropDef">
            <summary>
            This class contains the definition of a property that participates in a relationship between two Classes.
            This class collaborates with the <see cref="T:Habanero.BO.ClassDefinition.RelKeyDef"/>, the <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> 
              to provide a definition of the properties involved in the <see cref="T:Habanero.BO.ClassDefinition.RelationshipDef"/> between 
              two <see cref="T:Habanero.Base.IBusinessObject"/>. This provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            the RelPropdef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelPropDef is used by the RelKeyDef. The RelPropDef (Relationship Property Definition) defines
              the property definition <see cref="T:Habanero.Base.IPropDef"/> from the owner Business object defintion and the Property name that this
              Property Definition is mapped to. A <see cref="T:Habanero.BO.RelProp"/> is created from this definition for a particular 
              <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelPropDef.#ctor(Habanero.Base.IPropDef,System.String)">
            <summary>
            Constructor to create new RelPropDef object
            </summary>
            <param name="ownerClassPropDef">The property definition of the 
            owner object</param>
            <param name="relatedObjectPropName">The property name of the 
            related object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelPropDef.#ctor(System.String,System.String)">
            <summary>
            Constructor to create new RelPropDef object
            </summary>
            <param name="ownerClassPropDefName">The name of the prop on the owner object</param>
            <param name="relatedObjectPropName">The property name of the 
            related object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelPropDef.CreateRelProp(Habanero.Base.IBOPropCol)">
            <summary>
            Creates a new RelProp object based on this property definition
            </summary>
            <param name="boPropCol">The collection of properties</param>
            <returns>The newly created RelProp object</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelPropDef.RelatedClassPropName">
            <summary>
            The property name to be matched to in the related class
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelPropDef.OwnerPropDef">
            <summary>
            Returns the PropDef of the OwnerClass that this RelPropDef defines.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelPropDef.OwnerPropertyName">
            <summary>
            Returns the property name for the relationship owner
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.RelKeyDef">
            <summary>
            This class contains the definition of a Foreign Key that defines the properties <see cref="T:Habanero.BO.ClassDefinition.RelPropDef"/> that
              that forms a relationship between two Classes. 
            This class collaborates with the <see cref="T:Habanero.BO.ClassDefinition.RelPropDef"/>, the <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/> 
              to provide a definition of the properties involved in the <see cref="T:Habanero.BO.ClassDefinition.RelationshipDef"/> between 
              two <see cref="T:Habanero.Base.IBusinessObject"/>. This provides
              an implementation of the Foreign Key Mapping pattern (Fowler (236) -
              'Patterns of Enterprise Application Architecture' - 'Maps an association between objects to a 
              foreign Key Reference between tables.')
            the RelKeyDef should not be used by the Application developer since it is usually constructed 
               based on the mapping in the ClassDef.xml file.
            
            The RelKeyDef (Relationship Key Definition) is a list of relationship Property Defs <see cref="T:Habanero.BO.ClassDefinition.RelPropDef"/> that 
              define the properties that form the persistant relationship definition (<see cref="T:Habanero.BO.ClassDefinition.RelationshipDef"/> between 
              two Business object defitions (<see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>.
              <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.#ctor">
            <summary>
            Constructor to create a new RelKeyDef object
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.Add(Habanero.Base.IRelPropDef)">
            <summary>
            Adds the related property definition to this key, as long as
            a property by that name has not already been added.
            </summary>
            <param name="relPropDef">The RelPropDef object to be added.</param>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroArgumentException">Thrown if the
            argument passed is null</exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.Remove(Habanero.Base.IRelPropDef)">
            <summary>
            Removes a Related Property definition from the key
            </summary>
            <param name="relPropDef">The Related Property Definition to remove</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.Contains(Habanero.Base.IRelPropDef)">
            <summary>
            Returns true if the specified property is found.
            </summary>
            <param name="relPropDef">The Related Property Definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.Contains(System.String)">
            <summary>
            Returns true if a property with this name is part of this key.
            </summary>
            <param name="propName">The property name to search by</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.CreateRelKey(Habanero.Base.IBOPropCol)">
            <summary>
            Create a relationship key based on this key definition and
            its associated property definitions
            </summary>
            <param name="lBoPropCol">The collection of properties</param>
            <returns>Returns the new RelKey object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelKeyDef.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelKeyDef.Item(System.String)">
            <summary>
            Provides an indexing facility for the property definitions
            in this key definition so that they can be 
            accessed like an array (e.g. collection["surname"])
            </summary>
            <param name="propName">The name of the property</param>
            <returns>Returns the corresponding RelPropDef object</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelKeyDef.Count">
            <summary>
             The number of property definitiosn defined in the relKeyDef
            </summary>
        </member>
        <member name="T:Habanero.BO.ReadOnlyDataSetProvider">
            <summary>
            Provides a read-only data-set for business objects
            </summary>
        </member>
        <member name="M:Habanero.BO.ReadOnlyDataSetProvider.#ctor(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Constructor to initialise a new provider with the business object
            collection provided
            </summary>
            <param name="collection">The business object collection</param>
        </member>
        <member name="M:Habanero.BO.ReadOnlyDataSetProvider.InitialiseLocalData">
            <summary>
            Initialises the local data
            </summary>
        </member>
        <member name="T:Habanero.BO.DataStoreInMemory">
            <summary>
             This is an in-memory data store designed to be used primarily for testing.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Add(Habanero.Base.IBusinessObject)">
            <summary>
             Adds a new business object to the memory store.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Find``1(Habanero.Base.Criteria)">
            <summary>
             Finds the object of type T that matches the criteria.
            </summary>
            <param name="criteria"></param>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Find(System.Type,Habanero.Base.Criteria)">
            <summary>
             Finds the object of type BOType that matches  and criteria.
            </summary>
            <param name="boType"></param>
            <param name="criteria"></param>
            <returns></returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"></exception>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Find(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
             Finds a single business object matching the criteria. Throws an Error if more than one BO matches.
            </summary>
            <param name="classDef">ClassDef to match on.</param>
            <param name="criteria">Criteria being used to find the BusinessObject</param>
            <returns></returns>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">Error if more than one BO matches criteria</exception>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Find``1(Habanero.Base.IPrimaryKey)">
            <summary>
             Finds an object of type T that has the primary key primaryKey.
            </summary>
            <param name="primaryKey"></param>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.Remove(Habanero.Base.IBusinessObject)">
            <summary>
             Removes the object from the data store.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.FindAll``1(Habanero.Base.Criteria)">
            <summary>
             Find all objects that match the criteria.
            </summary>
            <param name="criteria"></param>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.FindAllInternal``1(Habanero.Base.Criteria)">
            <summary>
             Find all objects that match the criteria.
            </summary>
            <param name="criteria"></param>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.FindAll(System.Type,Habanero.Base.Criteria)">
            <summary>
             Find all objects of type boType that match the criteria.
            </summary>
            <param name="boType"></param>
            <param name="criteria"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.FindAll(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
             Find all objects of type boType that match the criteria.
            </summary>
             <param name="classDef"></param>
             <param name="criteria"></param>
             <returns></returns>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.ClearAllBusinessObjects">
            <summary>
            Clears all the objects in the memory datastore
            </summary>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.SaveToXml(System.String)">
            <summary>
            Saves all the objects from the data store to the file defined in fullFileName
            </summary>
            <param name="fullFileName">The full file name to store including the file path e.g. C:\Systems\SomeFile.dat </param>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.LoadFromXml(System.String,System.Type)">
            <summary>
            Loads all the objects to the data store from the file specified by fullFileName.
            The file specified to be loaded must be a serialised xml file.
            </summary>
            <param name="fullFileName">The full file name to store including the file path e.g. C:\Systems\SomeFile.xml </param>
            <param name="typeToLoad">The type to load that is the top of the heirarchy in the xml file</param>
        </member>
        <member name="M:Habanero.BO.DataStoreInMemory.GetNextAutoIncrementingNumber(Habanero.Base.IClassDef)">
            <summary>
             Returns the next value for the AutoIncrement value for the specified <see cref="T:Habanero.Base.IClassDef"/>.
             If a number generator does not exist for the specified <see cref="T:Habanero.Base.IClassDef"/> then one is created.
            </summary>
            <param name="classDef">The ClassDef that the AutoIncremented value is being generated for.</param>
            <returns>The next AutoIncrement value for the ClassDef specified.</returns>
        </member>
        <member name="P:Habanero.BO.DataStoreInMemory.Count">
            <summary>
             Returns the number of objects in the memory store.
            </summary>
        </member>
        <member name="P:Habanero.BO.DataStoreInMemory.AllObjects">
            <summary>
             Returns a Dictionary of all the objects in the memory store.
            </summary>
        </member>
        <member name="P:Habanero.BO.DataStoreInMemory.AutoIncrementNumberGenerators">
            <summary>
             The <see cref="T:Habanero.Base.INumberGenerator"/>s used to produce the AutoIncremented values for Classes in this DataStore.
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.ReflectedPropertyComparer`1">
            <summary>
            Compares a property of two different business objects using reflection.  Used by Sort().
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.ReflectedPropertyComparer`1.#ctor(System.String)">
            <summary>
            Constructor to instantiate a new comparer
            </summary>
            <param name="propertyName">The property name to compare on</param>
        </member>
        <member name="M:Habanero.BO.Comparer.ReflectedPropertyComparer`1.Compare(`0,`0)">
            <summary>
            Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.
            </summary>
            
            <returns>
            Value Condition Less than zerox is less than y.Zerox equals y.Greater than zerox is greater than y.
            </returns>
            
            <param name="y">The second object to compare.</param>
            <param name="x">The first object to compare.</param>
        </member>
        <member name="T:Habanero.BO.Comparer.GuidComparer`1">
            <summary>
            Compares two business objects on the Guid property specified 
            in the constructor
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.GuidComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the Guid property on
            which two business objects will be compared using the Compare()
            method
            </summary>
            <param name="propName">The Guid property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.GuidComparer`1.Compare(`0,`0)">
            <summary>
            Compares two business objects on the Guid property specified in 
            the constructor
            </summary>
            <param name="x">The first object to compare</param>
            <param name="y">The second object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first Guid is less, equal to or more
            than the second</returns>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLastUpdatePropertiesLog">
            <summary>
             This business object update log class updates the necessary logging fields on a business object.
             These logging fields are either passed in explicitly or when the class is initialised with the 
             business object the default fields are found and used.
             These fields are then updated when the update method is executed.
             There is also an optional parameter of the constructor for the ISecurityController for getting 
             the current user name. If no Security Controller is passed in then 
             the Global Registry's ISecurityController is used.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLastUpdatePropertiesLog.#ctor(Habanero.Base.IBOProp,Habanero.Base.IBOProp)">
            <summary>
             This constructor initialises this update log with the UserLastUpdated and DateLastUpdated properties 
             that are to be updated when the BusinessObject is updated.
            </summary>
            <param name="userLastUpdatedBoProp">The UserLastUpdated property</param>
            <param name="dateLastUpdatedBoProp">The DateLastUpdated property</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLastUpdatePropertiesLog.#ctor(Habanero.Base.IBOProp,Habanero.Base.IBOProp,Habanero.Base.ISecurityController)">
            <summary>
             This constructor initialises this update log with the UserLastUpdated and DateLastUpdated properties 
             that are to be updated when the BusinessObject is updated, and the ISecurityController to be used to 
             retrieve the current user name.
            </summary>
            <param name="userLastUpdatedBoProp">The UserLastUpdated property</param>
            <param name="dateLastUpdatedBoProp">The DateLastUpdated property</param>
            <param name="securityController">The ISecurityController class</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLastUpdatePropertiesLog.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
             This constructor initialises this update log with the BusinessObject to be updated.
             This businessobject is then searched for the default UserLastUpdated and DateLastUpdated properties 
             that are to be updated when the BusinessObject is updated.
            </summary>
            <param name="businessObject">The BusinessObject to be updated</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLastUpdatePropertiesLog.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.ISecurityController)">
            <summary>
             This constructor initialises this update log with the BusinessObject to be updated.
             This businessobject is then searched for the default UserLastUpdated and DateLastUpdated properties 
             that are to be updated when the BusinessObject is updated. The ISecurityController to be used to 
             retrieve the current user name is also passed in.
            </summary>
            <param name="businessObject">The BusinessObject to be updated</param>
            <param name="securityController">The ISecurityController class</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLastUpdatePropertiesLog.Update">
            <summary>
             Perform the log action for this Update Log class.
            </summary>
        </member>
        <member name="T:Habanero.BO.BORelationshipMapper">
            <summary>
            This is a mapper class that handles the mapping of a relationship name 
            to a specific relationship for a specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            The relationship name can be specified as a path through single relationships on the <see cref="T:Habanero.Base.IBusinessObject"/>
            and its' relationship tree.
            <remarks>For Example:<br/>
            For the ContactPerson BusinessObject when the relationshipName is "Organisation",
             the returned <see cref="T:Habanero.Base.IRelationship"/> will be the "Organisation" relationship on ContactPerson.<br/>
            If the relationshipName was "Organisation.Address" then the Organisation relationship on the contact person will 
            be traversed and monitored and return the corresponding "Address" <see cref="T:Habanero.Base.IRelationship"/> for the ContactPerson's current Organisation.</remarks>
            </summary>
        </member>
        <member name="M:Habanero.BO.BORelationshipMapper.#ctor(System.String)">
            <summary>
             Creates a BORelationshipMapper for the specified relationship name/path.
            </summary>
            <param name="relationshipName">The name of the relationship to be mapped (this could also be in the form of a path through single relationships on the BO).</param>
            <exception cref="T:System.ArgumentNullException">This is thrown if <paramref name="relationshipName"/> is null or empty.</exception>
        </member>
        <member name="E:Habanero.BO.BORelationshipMapper.RelationshipChanged">
            <summary>
            This event is fired when the current <see cref="P:Habanero.BO.BORelationshipMapper.Relationship"/> object changes, either through 
            the current <see cref="P:Habanero.BO.BORelationshipMapper.BusinessObject"/> being changed, or one of the related BusinessObjects in the 
            mapped Relationship Path has been changed.
            </summary>
        </member>
        <member name="P:Habanero.BO.BORelationshipMapper.RelationshipName">
            <summary>
             The name of the relationship to be mapped. 
             This could also be in the form of a path through single relationships on the BO.
             See <see cref="T:Habanero.BO.BORelationshipMapper"/> for more details.
            </summary>
        </member>
        <member name="P:Habanero.BO.BORelationshipMapper.Relationship">
            <summary>
             The relationship for the current <see cref="P:Habanero.BO.BORelationshipMapper.BusinessObject"/> that is mapped by the given <see cref="P:Habanero.BO.BORelationshipMapper.RelationshipName"/>.
            </summary>
        </member>
        <member name="P:Habanero.BO.BORelationshipMapper.BusinessObject">
            <summary>
             The BusinessObject for which the Relationship is being mapped.
             Once this property has been set, the <see cref="T:Habanero.BO.BORelationshipMapper"/>.<see cref="P:Habanero.BO.BORelationshipMapper.Relationship"/> property will be populated accordingly.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">This is thrown if the specified relationship does not exist on the <see cref="T:Habanero.Base.IBusinessObject"/> being set or if one of the Relationships within the Relationship Path is not a single Relationship.</exception>
        </member>
        <member name="T:Habanero.BO.PropRuleDecimal">
            <summary>
            Checks decimal values against property rules that test for validity
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDecimal.#ctor(System.String,System.String,System.Decimal,System.Decimal)">
            <summary>T
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minValue">The minimum value allowed for the decimal</param>
            <param name="maxValue">The maximum value allowed for the decimal</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDecimal.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="name">The rule name</param>
            <param name="message">This rule's failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDecimal.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDecimal.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleDecimal.MinValue">
            <summary>
            Gets and sets the minimum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleDecimal.MaxValue">
            <summary>
            Gets and sets the maximum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleDecimal.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlRelationshipLoader">
            <summary>
            Loads a relationship from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory,System.String)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
            <param name="className">The name of the class that has this relationship</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.LoadRelationship(System.String,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a relationship definition from the xml string provided
            </summary>
            <param name="xmlRelationshipDef">The xml string</param>
            <param name="propDefs">The property definition collection</param>
            <returns>Returns a relationship definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.LoadRelationship(System.Xml.XmlElement,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a relationship definition from the xml element provided
            </summary>
            <param name="relationshipElement">The xml element</param>
            <param name="propDefs">The property definition collection</param>
            <returns>Returns a relationship definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.Create">
            <summary>
            Creates a single or multiple relationship from the data already
            loaded
            </summary>
            <returns>Returns either a SingleRelationshipDef or
            MultipleRelationshipDef object, depending on the type
            specification
            </returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if a
            relationship other than 'single' or 'multiple' is specified
            </exception>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.LoadFromReader">
            <summary>
            Loads the relationship definition from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.LoadRelationshipDef">
            <summary>
            Loads the relationship definition from the reader.  This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRelationshipLoader.LoadRelKeyDef">
            <summary>
            Loads the RelKeyDef information from the reader.  This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlPrimaryKeyLoader">
            <summary>
            Loads primary key information from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.LoadPrimaryKey(System.String,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a primary key definition from the xml string and property
            definition collection provided
            </summary>
            <param name="xmlPrimaryKeyDef">The xml string</param>
            <param name="propDefs">The property definition collection</param>
            <returns>Returns the primary key definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.LoadPrimaryKey(System.Xml.XmlElement,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a primary key definition from the xml element and property
            definition collection provided
            </summary>
            <param name="primaryKeyElement">The xml element</param>
            <param name="propDefs">The property definition collection</param>
            <returns>Returns the primary key definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.Create">
            <summary>
            Creates the primary key definition from the data loaded
            </summary>
            <returns>Returns a PrimaryKeyDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.LoadFromReader">
            <summary>
            Loads the data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.LoadIsObjectID">
            <summary>
            Loads the "isObjectID" attribute from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlPrimaryKeyLoader.LoadPropertyDefs">
            <summary>
            Loads the property definitions from the reader
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if an
            error occurs while loading the data</exception>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.DefClassFactory">
            <summary>
            A factory that produces instances of business object related classes.
            This class is used by <see cref="T:Habanero.BO.Loaders.IClassDefsLoader"/> that read from the class definitions.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.IDefClassFactory">
            <summary>
            An interface to model a factory that produces business object related
            classes
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateBusinessObjectLookupList(System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="criteria"></param>
            <param name="sort"></param>
            <param name="timeout">the timeout period in milliseconds. This is the period that the lookup list will cached (i.e will not be reloaded from the database between successive calls)</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateClassDef(System.String,System.String,System.String,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="displayName"></param>
            <param name="primaryKeyDef"></param>
            <param name="propDefCol"></param>
            <param name="keyDefCol"></param>
            <param name="relationshipDefCol"></param>
            <param name="uiDefCol"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateSimpleLookupList(System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            </summary>
            <param name="displayValueDictionary"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateDatabaseLookupList(System.String,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            </summary>
            <param name="sqlString"></param>
            <param name="timeout"></param>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="limitToList"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateKeyDef(System.String)">
            <summary>
            </summary>
            <param name="keyName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePrimaryKeyDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropDef(System.String,System.String,System.String,Habanero.Base.PropReadWriteRule,System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            </summary>
            <param name="propertyName"></param>
            <param name="assemblyName"></param>
            <param name="typeName"></param>
            <param name="readWriteRule"></param>
            <param name="databaseFieldName"></param>
            <param name="defaultValueString"></param>
            <param name="compulsory"></param>
            <param name="autoIncrementing"></param>
            <param name="length"></param>
            <param name="displayName"></param>
            <param name="description"></param>
            <param name="keepValuePrivate"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleDate(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleDecimal(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleInteger(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleString(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateSingleRelationshipDef(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType)">
            <summary>
             Creates a Single Relationship Definitions <see cref="T:Habanero.BO.ClassDefinition.SingleRelationshipDef"/>
            </summary>
            <param name="relationshipName"></param>
            <param name="relatedAssemblyName"></param>
            <param name="relatedClassName"></param>
            <param name="relKeyDef"></param>
            <param name="keepReferenceToRelatedObject"></param>
            <param name="deleteParentAction"><see cref="T:Habanero.Base.DeleteParentAction"/></param>
            <param name="insertParentAction"><see cref="T:Habanero.Base.InsertParentAction"/></param>
            <param name="relationshipType"><see cref="T:Habanero.Base.RelationshipType"/></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateMultipleRelationshipDef(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,System.String,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType,System.Int32)">
            <summary>
            </summary>
            <param name="relationshipName"></param>
            <param name="relatedAssemblyName"></param>
            <param name="relatedClassName"></param>
            <param name="relKeyDef"></param>
            <param name="keepReferenceToRelatedObject"></param>
            <param name="orderBy"></param>
            <param name="deleteParentAction"></param>
            <param name="insertParentAction"><see cref="T:Habanero.Base.InsertParentAction"/></param>
            <param name="relationshipType"></param>
            <param name="timeout">The timout in milliseconds. The collection will not be automatically refreshed from the DB if the timeout has not expired</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateSuperClassDef(System.String,System.String,Habanero.Base.ORMapping,System.String,System.String)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="orMapping"></param>
            <param name="id"></param>
            <param name="discriminator"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIDef(System.String,Habanero.BO.ClassDefinition.IUIForm,Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="uiForm"></param>
            <param name="uiGrid"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIFormColumn">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIFormDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIFormProperty(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Nullable{System.Boolean},System.String,System.Collections.Hashtable,Habanero.BO.ClassDefinition.LayoutStyle)">
            <summary>
            </summary>
            <param name="label"></param>
            <param name="propertyName"></param>
            <param name="controlTypeName"></param>
            <param name="controlAssembly"></param>
            <param name="mapperTypeName"></param>
            <param name="mapperAssembly"></param>
            <param name="editable"></param>
            <param name="showAsCompulsory"></param>
            <param name="toolTipText"></param>
            <param name="propertyAttributes"></param>
            <param name="layout"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIFormTab">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIGridDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIGridProperty(System.String,System.String,System.String,System.String,System.Boolean,System.Int32,Habanero.Base.PropAlignment,System.Collections.Hashtable)">
            <summary>
            </summary>
            <param name="heading"></param>
            <param name="propertyName"></param>
            <param name="gridControlTypeName"></param>
            <param name="gridControlAssembly"></param>
            <param name="editable"></param>
            <param name="width"></param>
            <param name="alignment"></param>
            <param name="propertyAttributes"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateKeyDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateUIDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateRelationshipDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateRelPropDef(System.String,System.String)">
            <summary>
            </summary>
            <param name="propName"></param>
            <param name="relPropName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateRelKeyDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateClassDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateFilterPropertyDef(System.String,System.String,System.String,System.String,Habanero.Base.FilterClauseOperator,System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            </summary>
            <param name="propertyName"></param>
            <param name="label"></param>
            <param name="filterType"></param>
            <param name="filterTypeAssembly"></param>
            <param name="filterClauseOperator"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreateFilterDef(System.Collections.Generic.IList{Habanero.Base.IFilterPropertyDef})">
            <summary>
            </summary>
            <param name="filterPropertyDefs"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleSingle(System.String,System.String)">
            <summary>
            Creates a <see cref="T:Habanero.BO.PropRuleSingle"/>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.IDefClassFactory.CreatePropRuleDouble(System.String,System.String)">
            <summary>
            Creates a <see cref="T:Habanero.BO.PropRuleDouble"/>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateBusinessObjectLookupList(System.String,System.String,System.String,System.String,System.Int32)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="criteria"></param>
            <param name="sort"></param>
            <param name="timeout">the timeout period in milliseconds. This is the period that the lookup list will cached (i.e will not be reloaded from the database between successive calls)</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateClassDef(System.String,System.String,System.String,Habanero.Base.IPrimaryKeyDef,Habanero.Base.IPropDefCol,Habanero.Base.KeyDefCol,Habanero.Base.IRelationshipDefCol,Habanero.BO.ClassDefinition.UIDefCol)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="displayName"></param>
            <param name="primaryKeyDef"></param>
            <param name="propDefCol"></param>
            <param name="keyDefCol"></param>
            <param name="relationshipDefCol"></param>
            <param name="uiDefCol"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateDatabaseLookupList(System.String,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            </summary>
            <param name="sqlString"></param>
            <param name="timeout"></param>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="limitToList"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateKeyDef(System.String)">
            <summary>
            </summary>
            <param name="keyName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePrimaryKeyDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropDef(System.String,System.String,System.String,Habanero.Base.PropReadWriteRule,System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            </summary>
            <param name="propertyName"></param>
            <param name="assemblyName"></param>
            <param name="typeName"></param>
            <param name="readWriteRule"></param>
            <param name="databaseFieldName"></param>
            <param name="defaultValueString"></param>
            <param name="compulsory"></param>
            <param name="autoIncrementing"></param>
            <param name="length"></param>
            <param name="displayName"></param>
            <param name="description"></param>
            <param name="keepValuePrivate"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleDate(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleDecimal(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleInteger(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleString(System.String,System.String)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleSingle(System.String,System.String)">
            <summary>
            Creates a <see cref="T:Habanero.BO.PropRuleSingle"/>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropRuleDouble(System.String,System.String)">
            <summary>
            Creates a <see cref="T:Habanero.BO.PropRuleDouble"/>
            </summary>
            <param name="name"></param>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateSingleRelationshipDef(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType)">
            <summary>
            </summary>
            <param name="relationshipName"></param>
            <param name="relatedAssemblyName"></param>
            <param name="relatedClassName"></param>
            <param name="relKeyDef"></param>
            <param name="keepReferenceToRelatedObject"></param>
            <param name="deleteParentAction"></param>
            <param name="insertParentAction"><see cref="T:Habanero.Base.InsertParentAction"/></param>
            <param name="relationshipType"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateMultipleRelationshipDef(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,System.String,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType,System.Int32)">
            <summary>
            </summary>
            <param name="relationshipName"></param>
            <param name="relatedAssemblyName"></param>
            <param name="relatedClassName"></param>
            <param name="relKeyDef"></param>
            <param name="keepReferenceToRelatedObject"></param>
            <param name="orderBy"></param>
            <param name="deleteParentAction"></param>
            <param name="insertParentAction"><see cref="T:Habanero.Base.InsertParentAction"/></param>
            <param name="relationshipType"></param>
            <param name="timeout">The timout in milliseconds. The collection will not be automatically refreshed from the DB if the timeout has not expired</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateSimpleLookupList(System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            </summary>
            <param name="displayValueDictionary"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateSuperClassDef(System.String,System.String,Habanero.Base.ORMapping,System.String,System.String)">
            <summary>
            </summary>
            <param name="assemblyName"></param>
            <param name="className"></param>
            <param name="orMapping"></param>
            <param name="id"></param>
            <param name="discriminator"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIDef(System.String,Habanero.BO.ClassDefinition.IUIForm,Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            </summary>
            <param name="name"></param>
            <param name="uiForm"></param>
            <param name="uiGrid"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIFormColumn">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIFormDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIFormProperty(System.String,System.String,System.String,System.String,System.String,System.String,System.Boolean,System.Nullable{System.Boolean},System.String,System.Collections.Hashtable,Habanero.BO.ClassDefinition.LayoutStyle)">
            <summary>
            </summary>
            <param name="label"></param>
            <param name="propertyName"></param>
            <param name="controlTypeName"></param>
            <param name="controlAssembly"></param>
            <param name="mapperTypeName"></param>
            <param name="mapperAssembly"></param>
            <param name="editable"></param>
            <param name="showAsCompulsory"></param>
            <param name="toolTipText"></param>
            <param name="propertyAttributes"></param>
            <param name="layout"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIFormTab">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIGridDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIGridProperty(System.String,System.String,System.String,System.String,System.Boolean,System.Int32,Habanero.Base.PropAlignment,System.Collections.Hashtable)">
            <summary>
            </summary>
            <param name="heading"></param>
            <param name="propertyName"></param>
            <param name="gridControlTypeName"></param>
            <param name="gridControlAssembly"></param>
            <param name="editable"></param>
            <param name="width"></param>
            <param name="alignment"></param>
            <param name="propertyAttributes"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreatePropDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateKeyDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateUIDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateRelationshipDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateRelPropDef(System.String,System.String)">
            <summary>
            </summary>
            <param name="propName"></param>
            <param name="relPropName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateRelKeyDef">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateClassDefCol">
            <summary>
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateFilterPropertyDef(System.String,System.String,System.String,System.String,Habanero.Base.FilterClauseOperator,System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
             Creates an individual <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/> that will be used on the <see cref="T:Habanero.BO.ClassDefinition.FilterDef"/>
            </summary>
            <param name="propertyName">The Property Name that this <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/> is mapped to</param>
            <param name="label">The Label Text that is displayed for this <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/></param>
            <param name="filterType">The FilterType e.g. StringComboBoxFilter that is  to use for this <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/></param>
            <param name="filterTypeAssembly">The FilterType Assembly that is  to use for this <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/></param>
            <param name="filterClauseOperator">The <see cref="T:Habanero.Base.FilterClauseOperator"/> that is  to use for this <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.DefClassFactory.CreateFilterDef(System.Collections.Generic.IList{Habanero.Base.IFilterPropertyDef})">
            <summary>
             Creates a <see cref="T:Habanero.BO.ClassDefinition.FilterDef"/>
            </summary>
            <param name="filterPropertyDefs">The <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/>s that are placed on the FilterDef</param>
            <returns>The newly created FilterDef</returns>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlValidationResult">
            <summary>
            Represents the result of an Xml validation check, containing a boolean (<see cref="P:Habanero.BO.Loaders.XmlValidationResult.IsValid"/>) flag 
            indicating validity and a list of <see cref="P:Habanero.BO.Loaders.XmlValidationResult.Messages"/> containing any validation error messages.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlValidationResult.#ctor(System.Boolean,System.Collections.Generic.List{System.String})">
            <summary>
            Constructs a validation result.
            </summary>
            <param name="isValid">Whether the validation was successful</param>
            <param name="messages">Any messages that have arisen in the validation.</param>
        </member>
        <member name="P:Habanero.BO.Loaders.XmlValidationResult.IsValid">
            <summary>
            Whether the validation was successful
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.XmlValidationResult.Messages">
            <summary>
            Any messages that have arisen in the validation.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlFilterLoader">
            <summary>
             loads the Filter Defs from the ClassDefs.xml so
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlFilterLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            </summary>
            <param name="dtdLoader"></param>
            <param name="defClassFactory"></param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlFilterLoader.Create">
            <summary>
            Creates the object using the data that has been read in using
            LoadFromReader(). This method needs to be implemented by the
            sub-class.
            Creates the FilterDef with the propDefs, columns and filtermode.
            <returns></returns>
            </summary>
            <returns>Returns the object created</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlFilterLoader.LoadFromReader">
            <summary>
            Loads all the data out of the reader, assuming the document is 
            well-formed, otherwise the error must be caught and thrown.
            By the end of this method the reader must be finished reading.
            This method needs to be implemented by the sub-class.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlFilterLoader.LoadFilterDef(System.String)">
            <summary>
             Loads the FilterDef from an XML string.
            </summary>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLoaderBase">
            <summary>
             A base class for BusinessObjectLoader implementations. This base class covers all the 
             handling most of the overload methods and just leaves the Refresh methods to be 
             implemented in order to complete the implementation of the BusinessObjectLoader.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetCriteriaObject(Habanero.Base.IClassDef,System.String)">
            <summary>
            The log file used to log errors or events for this class
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.Refresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.Refresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.DoRefresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Actual Executes the Refresh this method is impleemented by the inherited classes of the business object loader base.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="collection"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.DoRefresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Actual Executes the Refresh this method is impleemented by the inherited classes of the business object loader base.
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <param name="orderCriteria">The order that the collections must be loaded in e.g. Surname, FirstName</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the searchCriteria an given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select searchCriteria and orderCriteria.  
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(System.String,System.String)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of <see cref="T:Habanero.Base.IBusinessObject"/>s of type T specified as follows:
            If you want record 6 to 15 then 
            firstRecordToLoad will be set to 5 (this is zero based) and 
            numberOfRecordsToLoad will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the orderCriteria).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the firstRecordToLoad to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the numberOfRecordsToLoad returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified firstRecordToLoad.
            If you give '0' as the value for the numberOfRecordsToLoad parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteria">The search criteria</param>
            <param name="orderCriteria">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria,Habanero.Base.IOrderCriteria,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads a business Object collection of the type defined by the <paramref name="classDef"/> with the appropriate 
            criteria and the start no of records and max number of records. For full details 
            see <see cref="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(System.String,System.String,System.Int32,System.Int32,System.Int32@)"/>
            </summary>
            <param name="classDef"></param>
            <param name="criteria"></param>
            <param name="orderCriteria"></param>
            <param name="firstRecordToLoad"></param>
            <param name="numberOfRecordsToLoad"></param>
            <param name="totalNoOfRecords"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(System.String,System.String,System.Int32,System.Int32,System.Int32@)">
            <summary>
            Loads business objects that match the search criteria provided, 
            loaded in the order specified, and limiting the number of objects loaded. 
            The limited list of Ts specified as follows:
            If you want record 6 to 15 then 
            <paramref name="firstRecordToLoad"/> will be set to 5 (this is zero based) and 
            <paramref name="numberOfRecordsToLoad"/> will be set to 10.
            This will load 10 records, starting at record 6 of the ordered set (ordered by the <paramref name="orderCriteriaString"/>).
            If there are fewer than 15 records in total, then the remaining records after record 6 willbe returned. 
            </summary>
            <remarks>
            As a design decision, we have elected for the <paramref name="firstRecordToLoad"/> to be zero based since this is consistent with the limit clause in used by MySql etc.
            Also, the <paramref name="numberOfRecordsToLoad"/> returns the specified number of records unless its value is '-1' where it will 
            return all the remaining records from the specified <paramref name="firstRecordToLoad"/>.
            If you give '0' as the value for the <paramref name="numberOfRecordsToLoad"/> parameter, it will load zero records.
            </remarks>
            <example>
            The following code demonstrates how to loop through the invoices in the data store, 
            ten at a time, and print their details:
            <code>
            BusinessObjectCollection&lt;Invoice&gt; col = new BusinessObjectCollection&lt;Invoice&gt;();
            int interval = 10;
            int firstRecord = 0;
            int totalNoOfRecords = firstRecord + 1;
            while (firstRecord &lt; totalNoOfRecords)
            {
                col.LoadWithLimit("", "InvoiceNo", firstRecord, interval, out totalNoOfRecords);
                Debug.Print("The next {0} invoices:", interval);
                col.ForEach(bo =&gt; Debug.Print(bo.ToString()));
                firstRecord += interval;
            }</code>
            </example>
            <param name="criteriaString">The search criteria</param>
            <param name="orderCriteriaString">The order-by clause</param>
            <param name="firstRecordToLoad">The first record to load (NNB: this is zero based)</param>
            <param name="numberOfRecordsToLoad">The number of records to be loaded</param>
            <param name="totalNoOfRecords">The total number of records matching the criteria</param>
            <returns>The loaded collection, limited in the specified way.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(Habanero.Base.Criteria,Habanero.Base.IOrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.Criteria,Habanero.Base.IOrderCriteria)">
            <summary>
            Loads a BusinessObjectCollection using the criteria given, applying the order criteria to order the collection that is returned. 
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="criteria">The criteria to use to load the business object collection</param>
            <returns>The loaded collection</returns>
            <param name="orderCriteria">The order criteria to use (ie what fields to order the collection on)</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectCollection(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a BusinessObjectCollection using the SelectQuery given. It's important to make sure that the ClassDef given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a businessobjectcollection so that you can perhaps load from multiple
            tables using a join (if loading from a database source).
            </summary>
            <param name="classDef">The ClassDef for the collection to load</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The loaded collection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.CreateCollectionOfType(Habanero.Base.IClassDef)">
            <summary>
            Creates a Generic Collection of <see cref="T:Habanero.Base.IBusinessObjectCollection"/> of the Generic
            Type determined by the <paramref name="classDef"/>
            </summary>
            <param name="classDef">The ClassDef to use for the collection (and its <see cref="T:Habanero.BO.SelectQuery"/>)</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.AddBusinessObjectToCollection(Habanero.Base.IBusinessObjectCollection,Habanero.Base.IBusinessObject,System.Collections.Generic.Dictionary{System.String,Habanero.Base.IBusinessObject})">
            <summary>
            Adds the business object <paramref name="loadedBo"/> to the collection identified by <paramref name="collection"/>
            </summary>
            <param name="collection">The collection to add to</param>
            <param name="loadedBo">The bo to be added</param>
            <param name="originalPersistedObjects"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreEditedLists(Habanero.Base.IBusinessObjectCollection,System.Collections.Generic.Dictionary{System.String,Habanero.Base.IBusinessObject})">
             <summary>
             The collection should show all loaded object less removed or deleted object not yet persisted
                 plus all created or added objects not yet persisted.
            Note_: This behaviour is fundamentally different than the business objects behaviour which 
              throws and error if any of the items are dirty when it is being refreshed.
            Should a refresh be allowed on a dirty collection (what do we do with BO's
            I think this could be done via reflection instead of having all these public methods.
               especially where done via the interface.
              the other option would be for the business object collection to have another method (other than clone)
               that returns another type of object that has these methods to eliminate all these 
               public accessors
             </summary>
             <param name="collection"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.CorrectPersistedCollection(Habanero.Base.IBusinessObjectCollection,System.Collections.Generic.Dictionary{System.String,Habanero.Base.IBusinessObject})">
            <summary>
            Corrects the items in the <see cref="P:Habanero.Base.IBusinessObjectCollection.PersistedBusinessObjects"/> collection.
            i.e. the objects that are in the <see cref="P:Habanero.Base.IBusinessObjectCollection.PersistedBusinessObjects"/> collection that were not loaded
            in this load are removed from that collection.
            </summary>
            <param name="collection">the collection to be corrected</param>
            <param name="originalPersistedCollection">A Dictionary of IDs and objects. If the object is not null then it is to be removed.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreAddedCollection(Habanero.Base.IBusinessObjectCollection,System.Collections.ArrayList)">
            <summary>
            Restores the items in the <see cref="P:Habanero.Base.IBusinessObjectCollection.AddedBusinessObjects"/> collection
             back into the collection <paramref name="collection"/>
            </summary>
            <param name="collection">the collection to be added back into</param>
            <param name="addedBoArray">The array of bo's to be added back</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreRemovedCollection(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Restores the removed collection. I.e. moves the items that are in the removed collection
             back to the main collection. Remember the main collection shows all the items from the database
              plus the items added, and created less the items removed or marked for deletion.
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreCreatedCollection(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Restores the created collection. I.e. moves the items that are in the created collection
             back to the main collection. Remember the main collection shows all the items from the database
              plus the items added, and created less the items removed or marked for deletion.
            </summary>
            <param name="collection"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreCreatedCollection(Habanero.Base.IBusinessObjectCollection,System.Collections.IList)">
            <summary>
            Restores the created collection. I.e. moves the items that are in the created collection
             back to the main collection. Remember the main collection shows all the items from the database
              plus the items added, and created less the items removed or marked for deletion.
            </summary>
            <param name="collection"></param>
            <param name="createdBusinessObjects"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.RestoreRemovedCollection(Habanero.Base.IBusinessObjectCollection,System.Collections.IList)">
            <summary>
            Restores the removed collection. I.e. moves the items that are in the removed collection
             out of the main collection. Remember the main collection shows all the items from the database
              plus the items added, and created less the items removed or marked for deletion.
            </summary>
            <param name="collection"></param>
            <param name="removedBusinessObjects"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetRelatedBusinessObjectCollection``1(Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.LoadBOCollection(Habanero.Base.IBusinessObjectCollection,System.Collections.ICollection)">
            <summary>
            Adds all the business objects from the <paramref name="loadedBOs"/> collection to the
            <see cref="T:Habanero.Base.IBusinessObjectCollection"/>
            </summary>
            <param name="collection">the collection being added to</param>
            <param name="loadedBOs">the collection of loaded BOs to add</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.LoadBOCollection``1(Habanero.Base.IBusinessObjectCollection,System.Collections.Generic.IList{``0})">
            <summary>
            Adds all the business objects from the <paramref name="loadedBOs"/> collection to the
            <see cref="T:Habanero.Base.IBusinessObjectCollection"/>
            </summary>
            <param name="collection">the collection being added to</param>
            <param name="loadedBOs">the collection of loaded BOs to add</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetRelatedBusinessObjectCollection(System.Type,Habanero.BO.IMultipleRelationship)">
            <summary>
            Loads a RelatedBusinessObjectCollection using the Relationship given.  This method is used by relationships to load based on the
            fields defined in the relationship.
            </summary>
            <param name="type">The type of collection to load. This must be a class that implements IBusinessObject</param>
            <param name="relationship">The relationship that defines the criteria that must be loaded.  For example, a Person might have
            a Relationship called Addresses, which defines the PersonID property as the relationship property. In this case, calling this method
            with the Addresses relationship will load a collection of Address where PersonID = '?', where the ? is the value of the owning Person's
            PersonID</param>
            <returns>The loaded RelatedBusinessObjectCollection</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectByValue(Habanero.Base.IClassDef,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="classDef">The Class definition of the Business Object to load</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectByValue(System.Type,System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="type">The type of business object to be loaded</param>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetBusinessObjectByValue``1(System.Object)">
            <summary>
             For a given value e.g. a Guid Identifier '{......}' this will 
             load the business object from the Data store.
             This can only be used for business objects that have a single property for the primary key
             (i.e. non composite primary keys)
            </summary>
            <param name="idValue">The value of the primary key of the business object</param>
            <returns>the Business Object that matches the value of the id. If the primary key cannot be constructed
             e.g. the primary key is composite then returns null. If the Business Object cannot be loaded then returns
             <see cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
              </returns>
             <exception cref="T:Habanero.BO.BusObjDeleteConcurrencyControlException"/>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.GetObjectFromObjectManager(Habanero.Base.IPrimaryKey,System.Type)">
            <summary>
            Returns the Business Object for the primary Key from the object manager
            </summary>
            <param name="key"></param>
            <param name="boType"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.SetStatusAfterLoad(Habanero.Base.IBusinessObject)">
            <summary>
            Sets the Status for the Business Object to NotNew.
            </summary>
            <param name="bo"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.CallAfterLoad(Habanero.Base.IBusinessObject)">
            <summary>
            Calls the AfterLoad method on the IBusinessObject (by casting it to a <see cref="T:Habanero.BO.BusinessObject"/>).
            </summary>
            <param name="bo"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderBase.FireUpdatedEvent(Habanero.Base.IBusinessObject)">
            <summary>
            Calls the FireUpdatedEvent method on the IBusinessObject (by casting it to a <see cref="T:Habanero.BO.BusinessObject"/>).
            </summary>
            <param name="bo"></param>
        </member>
        <member name="T:Habanero.BO.IBOPropertyMapper">
            <summary>
            This is a mapper class that handles the mapping of a property name 
            to a specific property for a specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            The property name can be specified as a path through single relationships 
            on the <see cref="T:Habanero.Base.IBusinessObject"/>
            and its' relationship tree.
            The property name can also be specified as a reflective Property i.e. a 
            property on the business object that is not mapped to a persistent prop of
            the business object.
            <remarks>For Related Prop Example:<br/>
            For the ContactPerson BusinessObject when the propertyName is "FirstName",
             the returned <see cref="T:Habanero.Base.IBOProp"/> will be the "FirstName" property on ContactPerson.<br/>
            If the propertyName was "Organisation.Name" then the Organisation relationship on the contact person will 
            be traversed and monitored and return the corresponding "Name" <see cref="T:Habanero.Base.IBOProp"/> for the ContactPerson's current Organisation.</remarks>
            <remarks>For Reflective Prop Example:<br/>
            For the ContactPerson BusinessObject you may have a derived Property age
             that is calculated based on date of birth.</remarks>
            </summary>
        </member>
        <member name="M:Habanero.BO.IBOPropertyMapper.SetPropertyValue(System.Object)">
            <summary>
            Sets the BOProp that this mapper is mapped to the associated propValue
            </summary>
            <param name="propValue"></param>
        </member>
        <member name="M:Habanero.BO.IBOPropertyMapper.GetPropertyValue">
            <summary>
            Return the Property Value for the Property being mapped.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.IBOPropertyMapper.BusinessObject">
            <summary>
             The BusinessObject for which the Property is being mapped.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">This is thrown if the specified property does not exist on the <see cref="T:Habanero.Base.IBusinessObject"/> being set or if one of the Relationships within the Property Path is not a single relationship.</exception>
        </member>
        <member name="P:Habanero.BO.IBOPropertyMapper.PropertyName">
            <summary>
             The name of the property to be mapped. 
             This could also be in the form of a path through single relationships on the BO.
             See <see cref="T:Habanero.BO.BOPropertyMapper"/> for more details.
            </summary>
        </member>
        <member name="P:Habanero.BO.IBOPropertyMapper.InvalidReason">
            <summary>
            If the Property is invalid then returns the Invalid reason.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOPropertyMapper">
            <summary>
            This is a mapper class that handles the mapping of a property name 
            to a specific property for a specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            The property name can be specified as a path through single relationships on the <see cref="T:Habanero.Base.IBusinessObject"/>
            and its' relationship tree.
            <remarks>For Example:<br/>
            For the ContactPerson BusinessObject when the propertyName is "FirstName",
             the returned <see cref="T:Habanero.Base.IBOProp"/> will be the "FirstName" property on ContactPerson.<br/>
            If the propertyName was "Organisation.Name" then the Organisation relationship on the contact person will 
            be traversed and monitored and return the corresponding "Name" <see cref="T:Habanero.Base.IBOProp"/> for the ContactPerson's current Organisation.</remarks>
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropertyMapper.#ctor(System.String)">
            <summary>
             Creates a BOPropertyMapper for the specified property name/path.
            </summary>
            <param name="propertyName">The name of the property to be mapped (this could also be in the form of a path through single relationships on the BO).</param>
            <exception cref="T:System.ArgumentNullException">This is thrown if <paramref name="propertyName"/> is null or empty.</exception>
        </member>
        <member name="M:Habanero.BO.BOPropertyMapper.SetPropertyValue(System.Object)">
            <summary>
            Sets the BOProp that this mapper is mapped to the associated propValue
            </summary>
            <param name="propValue"></param>
        </member>
        <member name="M:Habanero.BO.BOPropertyMapper.GetPropertyValue">
            <summary>
            Return the Property Value for the Property being mapped.
            </summary>
            <returns></returns>
        </member>
        <member name="E:Habanero.BO.BOPropertyMapper.PropertyChanged">
            <summary>
            This event is fired when the current <see cref="P:Habanero.BO.BOPropertyMapper.Property"/> object changes, either through 
            the current <see cref="P:Habanero.BO.BOPropertyMapper.BusinessObject"/> being changed, or one of the related BusinessObjects in the 
            mapped Property path has been changed.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropertyMapper.PropertyName">
            <summary>
             The name of the property to be mapped. 
             This could also be in the form of a path through single relationships on the BO.
             See <see cref="T:Habanero.BO.BOPropertyMapper"/> for more details.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropertyMapper.Property">
            <summary>
             The property for the current <see cref="P:Habanero.BO.BOPropertyMapper.BusinessObject"/> that is mapped by the given <see cref="P:Habanero.BO.BOPropertyMapper.PropertyName"/>.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropertyMapper.BusinessObject">
            <summary>
             The BusinessObject for which the Property is being mapped.
             Once this property has been set, the <see cref="T:Habanero.BO.BOPropertyMapper"/>.<see cref="P:Habanero.BO.BOPropertyMapper.Property"/> property will be populated accordingly.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyException">This is thrown if the specified property does not exist on the <see cref="T:Habanero.Base.IBusinessObject"/> being set or if one of the Relationships within the Property Path is not a single relationship.</exception>
        </member>
        <member name="P:Habanero.BO.BOPropertyMapper.InvalidReason">
            <summary>
            If the Property is invalid then returns the Invalid reason.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlClassLoader">
            <summary>
            Uses a variety of xml loaders to load all the facets that make
            up a business object class definition
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadClass(System.String)">
            <summary>
            Loads the class data from the xml string provided
            </summary>
            <param name="xmlClassDef">The xml class definition string.
            You can use <code>new StreamReader("filename.xml").ReadToEnd()</code>
            to read a continuous string from a file.</param>
            <returns>Returns the class definition loaded</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadClass(System.Xml.XmlElement)">
            <summary>
            Loads the class data using the xml element provided
            </summary>
            <param name="classElement">The xml class element</param>
            <returns>Returns the class definition loaded</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.Create">
            <summary>
            Creates a class definition using the data loaded from the reader
            </summary>
            <returns>Returns a class definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadFromReader">
            <summary>
            Loads all relevant data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadSuperClassDesc(System.String)">
            <summary>
            Load the super-class data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadRelationshipDefs(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Loads the relationship data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadUIDefs(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Loads the UIDef data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadKeyDefs(System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Loads the key definition data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadPrimaryKeyDef(System.String)">
            <summary>
            Loads the primary key definition data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadPropDefs(System.Collections.Generic.ICollection{System.String})">
            <summary>
            Loads the property definition data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadTableName">
            <summary>
            Loads the table name attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadDisplayName">
            <summary>
            Loads the display name attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadModuleName">
            <summary>
            Loads the Module name attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadTypeParameter">
            <summary>
            Loads the type parameter attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadClassID">
            <summary>
            Loads the classID attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassLoader.LoadClassInfo">
            <summary>
            Loads the class type info data
            </summary>
        </member>
        <member name="T:Habanero.BO.BOMapper">
            <summary>
            Provides mapping to a business object
            </summary>
        </member>
        <member name="M:Habanero.BO.BOMapper.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise a new mapper
            </summary>
            <param name="bo">The business object to map</param>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetLookupList(System.String)">
            <summary>
            Returns the lookup list contents for the property specified
            </summary>
            <param name="propertyName">The property name</param>
            <returns>Returns the lookup list or an empty collection if
            not available</returns>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetUIDef">
            <summary>
            Returns the business object's interface mapper
            </summary>
            <returns>Returns the interface mapper</returns>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetUIDef(System.String)">
            <summary>
            Returns the business object's interface mapper with the UIDefName
            specified
            </summary>
            <param name="uiDefName">The UIDefName</param>
            <returns>Returns the interface mapper</returns>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetPropertyValueToDisplay(System.String)">
            <summary>
            Returns a property value in the form it will be displayed in a
            user interface (sometimes the underlying value may be stored
            differently, as in a lookup-list)
            </summary>
            <param name="propertyName">The property name</param>
            <returns>Returns the formatted object to display</returns>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetAlternateRelationshipValue(System.String)">
            <summary>
            This is a bit of a hack_ was used on a specific project some time ago.
            This is not generally supported throughout Habanero so has been isolated here.
            </summary>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BOMapper.SetDisplayPropertyValue(System.String,System.Object)">
            <summary>
             Sets a property of a Business Object given the property name 
             (or the virtual property name delimited by dashes) and the value.
            </summary>
            <param name="propertyName">The name of the property to set.</param>
            <param name="value">The value to set.</param>
        </member>
        <member name="M:Habanero.BO.BOMapper.GetLookupListClassDef(System.String)">
            <summary>
            Returns the class definition related to the
            lookup list for the specified property.
            If the property does not have a LookupList returns null.
            If the LookupList is not of Type <see cref="T:Habanero.Base.ILookupListWithClassDef"/>
            then returns null.
            </summary>
            <param name="propertyName">The property name</param>
            <returns>Returns the class definition or null if not available</returns>
        </member>
        <member name="T:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo">
            <summary>
             This class returns SQL Parameter Information from a Property Definition and it's Class Definition.
             If a class definition is not specified, then a table name can explicitly be specified.
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.#ctor(Habanero.BO.ClassDefinition.PropDef)">
            <summary>
             Create SQL Parameter Information from a Property Definition.
            </summary>
            <param name="propDef">The property definition to use for the SQL Parameter Information.</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.#ctor(Habanero.BO.ClassDefinition.PropDef,System.String)">
            <summary>
             Create SQL Parameter Information from a Property Definition and an explicit table name.
            </summary>
            <param name="propDef">The property definition to use for the SQL Parameter Information.</param>
            <param name="tableName">The table name to use for this field</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.#ctor(System.String,Habanero.BO.ClassDefinition.PropDef,System.String)">
            <summary>
             Create SQL Parameter Information from a Property Definition and an explicit table name.
            </summary>
            <param name="parameterName">The name of the parameter that this information is for.</param>
            <param name="propDef">The property definition to use for the SQL Parameter Information.</param>
            <param name="tableName">The table name to use for this field</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.#ctor(Habanero.BO.ClassDefinition.PropDef,Habanero.BO.ClassDefinition.ClassDef)">
            <summary>
             Create SQL Parameter Information from a Property Definition and it's Class Definition.
            </summary>
            <param name="propDef">The property definition to use for the SQL Parameter Information.</param>
            <param name="classDef">The class definition to use for the SQL Parameter Information.</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.#ctor(System.String,Habanero.BO.ClassDefinition.PropDef,Habanero.BO.ClassDefinition.ClassDef)">
            <summary>
             Create SQL Parameter Information from a Property Definition and it's Class Definition.
            </summary>
            <param name="parameterName">The name of the parameter that this information is for.</param>
            <param name="propDef">The property definition to use for the SQL Parameter Information.</param>
            <param name="classDef">The class definition to use for the SQL Parameter Information.</param>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.ParameterType">
            <summary>
            Returns the parameter type (typically either DateTime or String)
            </summary>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.FieldName">
            <summary>
            Returns the database field name
            </summary>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.ParameterName">
            <summary>
            Returns the parameter name
            </summary>
        </member>
        <member name="P:Habanero.BO.CriteriaManager.PropDefParameterSQLInfo.TableName">
            <summary>
            Returns an empty string
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIGrid">
            <summary>
            Manages property definitions for a user interface grid, as specified
            in the class definitions xml file
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.#ctor">
            <summary>
            Constructor to initialise a new collection of definitions
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Add(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Adds a grid property definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Remove(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Removes a grid property definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Contains(Habanero.BO.ClassDefinition.IUIGridColumn)">
            <summary>
            Checks if a grid property definition is in the Grid definition
            </summary>
            <param name="prop">The grid property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the collection to an Array, 
            starting at a particular Array index
            </summary>
            <param name="array">The array to copy to</param>
            <param name="index">The zero-based index position to start
            copying from</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.GetEnumerator">
            <summary>
            Returns the definition list's enumerator
            </summary>
            <returns>Returns an IEnumerator-type object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.op_Equality(Habanero.BO.ClassDefinition.UIGrid,Habanero.BO.ClassDefinition.UIGrid)">
            <summary>
             overloads the operator == 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.op_Inequality(Habanero.BO.ClassDefinition.UIGrid,Habanero.BO.ClassDefinition.UIGrid)">
            <summary>
             overloads the operator != 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.Equals(Habanero.BO.ClassDefinition.IUIGrid)">
            <summary>
            Determines whether this object is equal to obj.
            </summary>
            <param name="obj">The object being compared to</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGrid.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.Item(System.String)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="propName">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.Count">
            <summary>
            Returns the number of definitions held
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.SyncRoot">
            <summary>
            Returns the synchronisation root
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.IsSynchronized">
            <summary>
            Indicates whether the definitions are synchronised
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.SortColumn">
            <summary>
            The column on which rows are ordered initially.
            Indicate the direction by adding " asc" or " desc"
            after the column name (" asc" is assumed if left out).  If this
            property is not specified, rows will be listed in the order
            they were added to the database.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.FilterDef">
            <summary>
             The definition of the filter that will be used for this grid.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGrid.UIDef">
            <summary>
             The UI Def that this UIForm is related to.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropLongDataMapper">
            <summary>
             Implements a data mapper for a long Property
             The property data mapper conforms to the GOF strategy pattern <seealso cref="T:Habanero.BO.ClassDefinition.BOPropDataMapper"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropLongDataMapper.ConvertValueToString(System.Object)">
            <summary>
            This mapper method will convert any valid guid object to an 
              Invariant long string of format .ToString("B").ToUpperInvariant().
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropLongDataMapper.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This mapper method will convert any valid long string to a valid long object 
              (ParsePropValue) and will convert a DBNull to a null value to null.
            </summary>
            <param name="valueToParse">value to convert.</param>
            <param name="returnValue"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.ISingleRelationship">
            <summary>
            Manages a relationship where the relationship owner relates to one
            other object
            </summary>
        </member>
        <member name="M:Habanero.BO.ISingleRelationship.SetRelatedObject(Habanero.Base.IBusinessObject)">
            <summary>
            Sets the related object to that provided
            </summary>
            <param name="relatedObject">The object to relate to</param>
        </member>
        <member name="M:Habanero.BO.ISingleRelationship.GetRelatedObject">
            <summary>
             Returns the related object for the single relationship.
            </summary>
            <returns>returns the related business object</returns>
        </member>
        <member name="M:Habanero.BO.ISingleRelationship.HasRelatedObject">
            <summary>
            Indicates whether the related object has been specified
            </summary>
            <returns>Returns true if related object exists</returns>
        </member>
        <member name="E:Habanero.BO.ISingleRelationship.RelatedBusinessObjectChanged">
            <summary>
            Handles the event of a Related Business Object <see cref="T:Habanero.Base.IBusinessObject"/> being changed
            </summary>
        </member>
        <member name="T:Habanero.BO.SingleRelationshipBase">
            <summary>
             Provides a base class for managing single relationships
            </summary>
        </member>
        <member name="T:Habanero.BO.Relationship">
            <summary>
            Provides a super-class for relationships between business objects
            </summary>
        </member>
        <member name="T:Habanero.BO.RelationshipBase">
            <summary>
             This provides a base class from which all relationship classes inherit.
            </summary>
        </member>
        <member name="F:Habanero.BO.RelationshipBase._relKey">
            <summary>
            The Key that defines this relationship I.e. OwningProps and their related props.
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.IsDeletable(System.String@)">
            <summary>
            Is there anything in this relationship to prevent the business object from being deleted.
            e.g. if there are related business objects that are not marked as mark for delete.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.MarkForDelete">
            <summary>
            If the relationship is <see cref="P:Habanero.Base.IRelationship.DeleteParentAction"/>.DeleteRelated then
            all the related objects and their relevant children will be marked for Delete.
            See <see cref="M:Habanero.Base.IBusinessObject.MarkForDelete"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.CancelEdits">
            <summary>
            Cancels Edits on this relationship and all its children.
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.AddDirtyChildrenToTransactionCommitter(Habanero.BO.TransactionCommitter)">
            <summary>
            Adds all dirty children to the <see cref="T:Habanero.BO.TransactionCommitter"/>
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.DereferenceChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            Dereferences the Children if required and adds the relevant Deref Block to the transaction committer.
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.DeleteChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            Deletes the Children if required and adds the relevant children to the transaction committer.
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.DereferenceRemovedChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            Dereferences the Removed Children and adds the dereference transactionItem to the transaction committer
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.DeleteMarkedForDeleteChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            Adds all the marked for deleted children to the transaction committer and commits it.
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.GetReverseRelationship(Habanero.Base.IBusinessObject)">
            <summary>
            Returns the reverse relationship for this relationship i.e. If invoice has invoice lines and you 
            can navigate from invoice lines to invoices then the invoicelines to invoice relationship is the
            reverse relationship of the invoice to invoicelines relationship and vica versa.
            </summary>
            <param name="bo">The related Business object (in the example the invoice lines)</param>
            <returns>The reverse relationship or null if no reverse relationship is set up.</returns>
        </member>
        <member name="M:Habanero.BO.RelationshipBase.HasReverseRelationshipDefined(Habanero.Base.IRelationship)">
            <summary>
            Returns true if htis relationship has a reverse relationship defined. False otherwise.
            </summary>
            <param name="relationship"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.RelKey">
            <summary>
             The key that identifies this relationship i.e. the properties in the 
             source object and how they are related to properties in the related object.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.RelatedObjectClassDef">
            <summary>
            The class Definition for the related object.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.RelationshipDef">
            <summary>
            Returns the relationship definition
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.RelationshipName">
            <summary>
            Returns the relationship name
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.Initialised">
            <summary>
             Is the relationship initialised.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.DeleteParentAction">
            <summary>
             Returns the appropriate delete action when the parent is deleted.
             i.e. delete related objects, dereference related objects, prevent deletion.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipBase.OwningBO">
            <summary>
             Returns the business object that owns this relationship e.g. Invoice has many lines
             the owning BO would be invoice.
            </summary>
        </member>
        <member name="F:Habanero.BO.Relationship._relDef">
            <summary> The Definition that defines this relationship. </summary>
        </member>
        <member name="F:Habanero.BO.Relationship._owningBo">
            <summary> The Busienss Object that owns this relationship </summary>
        </member>
        <member name="M:Habanero.BO.Relationship.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IRelationshipDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constructor to initialise a new relationship
            </summary>
            <param name="owningBo">The business object from where the 
            relationship originates</param>
            <param name="lRelDef">The relationship definition</param>
            <param name="lBOPropCol">The set of properties used to
            initialise the RelKey object</param>
        </member>
        <member name="M:Habanero.BO.Relationship.DoInitialisation">
            <summary>
            Do the initialisation of this relationship.
            </summary>
        </member>
        <member name="M:Habanero.BO.Relationship.DereferenceChild(Habanero.BO.TransactionCommitter,Habanero.Base.IBusinessObject)">
            <summary>
            DereferenceThe Child <see cref="T:Habanero.Base.IBusinessObject"/> identified by <paramref name="bo"/>
            </summary>
            <param name="committer">The transaction commtter responsible for persisting this dereference.</param>
            <param name="bo">The Business Object being dereferenced.</param>
        </member>
        <member name="M:Habanero.BO.Relationship.DeleteChild(Habanero.BO.TransactionCommitter,Habanero.Base.IBusinessObject)">
            <summary>
            Deletes the Child Bo identified by <paramref name="bo"/>
            </summary>
            <param name="committer"></param>
            <param name="bo"></param>
        </member>
        <member name="P:Habanero.BO.Relationship.RelationshipName">
            <summary>
            Returns the relationship name
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.RelationshipDef">
            <summary>
            Returns the relationship definition
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.DeleteParentAction">
            <summary>
             Returns the appropriate delete action when the parent is deleted.
             i.e. delete related objects, dereference related objects, prevent deletion.
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.OwningBO">
            <summary>
             Returns the business object that owns this relationship e.g. Invoice has many lines
             the owning BO would be invoice.
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.RelKey">
            <summary>
             The key that identifies this relationship i.e. the properties in the 
             source object and how they are related to properties in the related object.
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.RelatedObjectClassDef">
            <summary>
            The class Definition for the related object.
            </summary>
        </member>
        <member name="P:Habanero.BO.Relationship.Initialised">
            <summary>
             Is the relationship initialised or not.
            </summary>
        </member>
        <member name="M:Habanero.BO.SingleRelationshipBase.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IRelationshipDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constructs a Single Relationship with the Owning BO, the RelationshipDe and the Props that from the
            Owning BO.
            </summary>
            <param name="owningBo">The Business object that owns this relationship.</param>
            <param name="lRelDef">The <see cref="T:Habanero.Base.IRelationshipDef"/> that this relationship is for </param>
            <param name="lBOPropCol">The Collection of business objects properties (<see cref="T:Habanero.BO.BOPropCol"/> that is used to create the relKey</param>
        </member>
        <member name="P:Habanero.BO.SingleRelationshipBase.RemovedBOInternal">
            <summary>
            Removes the Business Object from the RelationshipBase.
            </summary>
        </member>
        <member name="P:Habanero.BO.SingleRelationshipBase.OwningBOHasForeignKey">
            <summary>
             Returns true if the Business object that owns this relationship has the foreign key and true otherwise.
            </summary>
        </member>
        <member name="T:Habanero.BO.SingleRelationship`1">
            <summary>
            Manages a relationship where the relationship owner relates to one
            other object
            </summary>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IRelationshipDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constructor to initialise a new relationship
            </summary>
            <param name="owningBo">The business object that owns the
            relationship</param>
            <param name="lRelDef">The relationship definition</param>
            <param name="lBOPropCol">The set of properties used to
            initialise the RelKey object</param>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.HasRelatedObject">
            <summary>
            Indicates whether the related object has been specified
            </summary>
            <returns>Returns true if related object exists</returns>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.Habanero#BO#ISingleRelationship#GetRelatedObject">
            <summary>
             Returns the related object for the single relationship.
            </summary>
            <returns>returns the related business object</returns>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.GetRelatedObject">
            <summary>
             Returns the related object for the single relationship.
            </summary>
            <returns>returns the related business object</returns>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.IsDeletable(System.String@)">
            <summary>
            Is there anything in this relationship to prevent the business object from being deleted.
            e.g. if there are related business objects that are not marked as mark for delete.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.MarkForDelete">
            <summary>
            If the relationship is <see cref="M:Habanero.Base.IBusinessObject.MarkForDelete"/>.DeleteRelated then
            all the related objects and their relevant children will be marked for Delete.
            See <see cref="P:Habanero.Base.IRelationship.DeleteParentAction"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.SetRelatedObject(`0)">
            <summary>
            Sets the related object to that provided
            </summary>
            <param name="relatedObject">The object to relate to</param>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.DoInitialisation">
            <summary>
            Do the initialisation of this relationship.
            </summary>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.UpdateRelationshipAsPersisted">
            <summary>
            UpdateRelationshipAsPersisted
            </summary>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.DereferenceChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            DereferenceChildren
            </summary>
            <param name="committer"></param>
        </member>
        <member name="M:Habanero.BO.SingleRelationship`1.DeleteChildren(Habanero.BO.TransactionCommitter)">
            <summary>
            Delete Children
            </summary>
            <param name="committer"></param>
        </member>
        <member name="E:Habanero.BO.SingleRelationship`1.RelatedBusinessObjectChanged">
            <summary>
            Handles the event of a Related Business Object <see cref="T:Habanero.Base.IBusinessObject"/> being changed
            </summary>
        </member>
        <member name="E:Habanero.BO.SingleRelationship`1.Updated">
            <summary>
            Indicates that the related BO has been changed. 
            This is fired any time that the related BO of the relationship is changed.
            </summary>
        </member>
        <member name="P:Habanero.BO.SingleRelationship`1.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="P:Habanero.BO.SingleRelationship`1.OwningBOHasForeignKey">
            <summary>
             Returns true if the Business object that owns this relationship has the foreign key and true otherwise.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlSimpleLookupListLoader">
            <summary>
            Loads xml data for a lookup list
            </summary>
        </member>
        <member name="F:Habanero.BO.Loaders.XmlSimpleLookupListLoader._displayValueDictionary">
            <summary>
            Provides a key value pair where the value can be returned for 
              any displayed value. 
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSimpleLookupListLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSimpleLookupListLoader.LoadLookupListFromReader">
            <summary>
            Loads the lookup list data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSimpleLookupListLoader.Create">
            <summary>
            Creates a lookup list data source from the data already read in
            </summary>
            <returns>Returns a SimpleLookupList object</returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.SuperClassDef">
            <summary>
            Manages a super-class in the case where inheritance is being used.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SuperClassDef.#ctor(Habanero.Base.IClassDef,Habanero.Base.ORMapping)">
            <summary>
            Constructor to create a new super-class
            </summary>
            <param name="superClassDef">The class definition</param>
            <param name="mapping">The type of OR-Mapping to use. See
            the ORMapping enumeration for more detail.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.SuperClassDef.#ctor(System.String,System.String,Habanero.Base.ORMapping,System.String,System.String)">
            <summary>
            Constructor to create a new super-class
            </summary>
            <param name="assemblyName">The assembly name of the superClass</param>
            <param name="className">The class name of the superClass</param>
            <param name="mapping">The type of OR-Mapping to use. See
            the ORMapping enumeration for more detail.</param>
            <param name="id">In ClassTableInheritance, this determines which property
            in the child has a copy of the parent ID.  Provide an empty string if in
            the code the child simply inherits the parent's ID.</param>
            <param name="discriminator">In SingleTableInheritance, this determines
            the name of the database column that stores the type name of the class
            being stored in that particular row.</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.ORMapping">
            <summary>
            Returns the type of ORMapping used.  See the ORMapping
            enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.AssemblyName">
            <summary>
             The assembly name of the SuperClass
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.ClassName">
            <summary>
             The class name of the SuperClass
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.ID">
            <summary>
            Returns the name of the property that identifies which field
            in the child class (containing the super class definition)
            contains a copy of the parent's ID.  An empty string implies
            that the parent's ID is simply inherited and is used as the
            child's ID.  This property applies only to ClassTableInheritance.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.Discriminator">
            <summary>
            Returns the name of the discriminator column used to determine which class is being
            referred to in a row of the database table.
            This property applies only to SingleTableInheritance.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.SuperClassDef.SuperClassClassDef">
            <summary>
            Returns the class definition for this super-class
            </summary>
        </member>
        <member name="T:Habanero.BO.EditableDataSetProvider">
            <summary>
            Provides an editable data-set for business objects
            </summary>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.#ctor(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Constructor to initialise a new provider with the business object
            collection provided
            </summary>
            <param name="col">The business object collection</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.DeregisterForTableEvents">
            <summary>
            Deregisters for all events to the <see cref="F:Habanero.BO.DataSetProvider._table"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RegisterForTableEvents">
            <summary>
            Registers for all events to the <see cref="F:Habanero.BO.DataSetProvider._table"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.NewRowHandler(System.Object,System.Data.DataTableNewRowEventArgs)">
            <summary>
            Handles the event of a new row being added
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.InitialiseLocalData">
            <summary>
            Initialises the local data
            </summary>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowDeletedHandler(System.Object,System.Data.DataRowChangeEventArgs)">
            <summary>
            Handles the event of a row being deleted
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.GetBusinessObjectForRow(System.Data.DataRow)">
            <summary>
            Returns the business object mapped to a particular row.
            </summary>
            <param name="row"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowRollback(System.Data.DataRowChangeEventArgs)">
            <summary>
            Restores a row to its previous state before changes were made
            </summary>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowChangedHandler(System.Object,System.Data.DataRowChangeEventArgs)">
            <summary>
            Handles the event of a row being changed
            </summary>
            <param name="sender">The object that notified of the event</param>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowCommitted(System.Data.DataRowChangeEventArgs)">
            <summary>
            Handles the event of a row being committed to the database
            </summary>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowChanged(System.Data.DataRowChangeEventArgs)">
            <summary>
            Handles the event of a row being changed
            </summary>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="M:Habanero.BO.EditableDataSetProvider.RowAdded(System.Data.DataRowChangeEventArgs)">
            <summary>
            Handles the event of a row being added
            </summary>
            <param name="e">Attached arguments regarding the event</param>
        </member>
        <member name="P:Habanero.BO.EditableDataSetProvider.Connection">
            <summary>
            Gets and sets the database connection
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.DoubleComparer`1">
            <summary>
            Compares two business objects on the Double property specified 
            in the constructor
            </summary>
        </member>
        <member name="T:Habanero.BO.Comparer.PropertyComparer`2">
            <summary>
            Compares two business objects on the property specified 
            in the constructor using the specified generic type
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.PropertyComparer`2.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the property
            on which two business objects will be compared using the Compare()
            method for the specified type
            </summary>
            <param name="propName">The property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.PropertyComparer`2.Compare(`0,`0)">
            <summary>
            Compares two business objects on the property specified in 
            the constructor
            </summary>
            <param name="x">The first business object to compare</param>
            <param name="y">The second business object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first property value is less, equal to or more
            than the second</returns>
        </member>
        <member name="P:Habanero.BO.Comparer.PropertyComparer`2.PropertyName">
            <summary>
            Gets and sets the name of the property being compared on
            </summary>
        </member>
        <member name="P:Habanero.BO.Comparer.PropertyComparer`2.Source">
            <summary>
            Gets and sets the source of data
            </summary>
        </member>
        <member name="P:Habanero.BO.Comparer.PropertyComparer`2.PropertyType">
            <summary>
            Gets and sets the type of the property being compared on
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.DoubleComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the property
            on which two business objects will be compared using the Compare()
            method for the specified type
            </summary>
            <param name="propName">The property name on which two
            business objects will be compared</param>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIGridColumn">
            <summary>
            Manages property definitions for a column in a user interface grid,
            usually as specified in the class definitions xml file.
            The UIGridColumn can be for 
            <li>A Reflective Property e.g. 
            an Order BO may have a property "CustomerName" that is declared on the 
            Order BO class directly but is derived from the Customer class and therefore 
            does not have a PropDef associated with it.</li>
            <li>A Defined Property i.e. a normal property of the BO that is mapped to a column 
            in the database e.g. for Order BO an OrderNumber. This property will have a 
            PropDef.</li>
            <li>A Related Property Habanero has the ability to define a property for a grid etc.
            via its relationships e.g. for a grid showing order details we may want to show the 
            CustomerName and CustomerCode. We could define these as properties on the Order BO and
            use Reflective Properties (as above) or we could declare the Related Properties i.e.
            Customer.CustomerName and Customer.CustomerCode. Habanero will then find the PropDef for the
            Related Property via its defined relationships.
            A Related Property can be defined via any of the Business Objects single Relationships.</li>
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.#ctor(System.String,System.String,System.String,System.String,System.Boolean,System.Int32,Habanero.Base.PropAlignment,System.Collections.Hashtable)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="heading">The heading</param>
            <param name="propertyName">The property name</param>
            <param name="gridControlTypeName">The Name of the Grid Control Type</param>
            <param name="gridControlAssembly">The Assembly Name of the Grid Control Type</param>
            <param name="editable">Whether the grid is read-only (cannot be
            edited directly)</param>
            <param name="width">The width</param>
            <param name="alignment">The horizontal alignment</param>
            <param name="parameters">The parameters for the column</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.#ctor(System.String,System.String,System.Type,System.Boolean,System.Int32,Habanero.Base.PropAlignment,System.Collections.Hashtable)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="heading">The heading</param>
            <param name="propertyName">The property name</param>
            <param name="gridControlType">The grid control type.  This cannot be null -
            if you need to supply null type parameters use the constructor that supplies
            specific type and assembly names and set these as null.</param>
            <param name="editable">Whether the grid is read-only (cannot be
            edited directly)</param>
            <param name="width">The width</param>
            <param name="alignment">The horizontal alignment</param>
            <param name="parameters">The parameters for the column</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.DetermineIsEditable">
            <summary>
            Updates the isEditable flag and updates 
            the control according to the current state
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.GetHeading">
            <summary>
             Gets the heading for this grid column.
            </summary>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.GetHeading(Habanero.Base.IClassDef)">
            <summary>
             Gets the heading for this grid column given a classDef.
            </summary>
            <param name="classDef">The class definition that corresponds to this grid column. </param>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.GetPropertyType">
            <summary>
             Gets the heading for this grid column.
            </summary>
            <returns> The heading for this grid column </returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.GetParameterValue(System.String)">
            <summary>
            Returns the parameter value for the name provided
            </summary>
            <param name="parameterName">The parameter name</param>
            <returns>Returns the parameter value or null if not found</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.GetHashCode">
            <summary>
            Returns the hash code for this object.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.op_Equality(Habanero.BO.ClassDefinition.UIGridColumn,Habanero.BO.ClassDefinition.UIGridColumn)">
            <summary>
             overloads the operator == 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.op_Inequality(Habanero.BO.ClassDefinition.UIGridColumn,Habanero.BO.ClassDefinition.UIGridColumn)">
            <summary>
             overloads the operator != 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIGridColumn.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.Heading">
            <summary>
            Returns the heading text that has been defined specifically for this
            UIGridColumn. If this is null then the Heading determined via
            <see cref="M:Habanero.BO.ClassDefinition.UIGridColumn.GetHeading"/> will be used. 
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.PropertyName">
            <summary>
            Returns the property name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.GridControlType">
            <summary>
            Returns the grid control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.Editable">
            <summary>
            Indicates whether the column is editable.
            This takes into account the following.
            1) Has the GridColumn Been set to Not Editable Explicitely e.g. via ClassDef.xml.
            2) Is the PropDef in a Non editable state e.g. PropDef ReadWriteStatus is ReadOnly
            3) If there is no PropDef then does the reflective PropInfo have a Setter.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.Width">
            <summary>
            Returns the width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.Alignment">
            <summary>
            Returns the horizontal alignment
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.Parameters">
            <summary>
            Returns the Hashtable containing the property parameters
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.GridControlTypeName">
            <summary>
            Gets and sets the name of the grid control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.GridControlAssemblyName">
            <summary>
            Gets and sets the assembly name of the grid control type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.UIGrid">
            <summary>
             The <see cref="T:Habanero.BO.ClassDefinition.IUIGrid">Grid Definition</see> that this IUIGridColumn belongs to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.ClassDef">
            <summary>
             The <see cref="T:Habanero.Base.IClassDef">ClassDefinition</see> that this IUIGridColumn belongs to
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.LookupList">
            <summary>
            Returns the LookupList for the PropDef that 
            is associated with this PropDef.
            If there is no PropDef associated with this column
            then returns <see cref="T:Habanero.BO.NullLookupList"/>.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.PropDef">
            <summary>
            Returns the PropDef that is associated with this UIGridColumn.
            If one is associaciated. Returns null otherwise
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIGridColumn.HasPropDef">
            <summary>
            Return true if this UIGridColumn is associated with a <see cref="T:Habanero.Base.IPropDef"/>.
            This is used since a GridColumn can be associated with
            Reflective Property 
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIFormTab">
            <summary>
            Manages property definitions for a tab in a user interface editing 
            form, as specified in the class definitions xml file
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.#ctor">
            <summary>
            Constructor to initialise a new tab definition
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.#ctor(Habanero.BO.ClassDefinition.UIFormColumn[])">
            <summary>
            Construct the UIFormTab with its UIFormColumns
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.#ctor(System.String)">
            <summary>
            Constructor to initialise a new tab definition with a tab name
            </summary>
            <param name="name">The tab name</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Add(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Adds a column definition to the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Remove(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Removes a column definition from the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Contains(Habanero.BO.ClassDefinition.IUIFormColumn)">
            <summary>
            Checks if a column definition is in the collection of definitions
            </summary>
            <param name="column">The UIFormColumn object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the collection to an Array, 
            starting at a particular Array index
            </summary>
            <param name="array">The array to copy to</param>
            <param name="index">The zero-based index position to start
            copying from</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.GetEnumerator">
            <summary>
            Returns the definition list's enumerator
            </summary>
            <returns>Returns an IEnumerator-type object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.op_Equality(Habanero.BO.ClassDefinition.UIFormTab,Habanero.BO.ClassDefinition.UIFormTab)">
            <summary>
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.op_Inequality(Habanero.BO.ClassDefinition.UIFormTab,Habanero.BO.ClassDefinition.UIFormTab)">
            <summary>
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Equals(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            
            <returns>
            true if the current object is equal to the other parameter; otherwise, false.
            </returns>
            
            <param name="uiFormTab">An object to compare with this object.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.GetMaxFieldCount">
            <summary>
             Get the count of the Maximum number of fields
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormTab.GetMaxRowsInColumns">
            <summary>
             Get the Max rows In the Columns.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.Count">
            <summary>
            Returns the number of definitions held
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.SyncRoot">
            <summary>
            Returns the synchronisation root
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.IsSynchronized">
            <summary>
            Indicates whether the definitions are synchronised
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.Name">
            <summary>
            Gets and sets the tab name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.UIFormGrid">
            <summary>
            Gets and sets the UIFormGrid definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormTab.UIForm">
            <summary>
            Returns the <see cref="P:Habanero.BO.ClassDefinition.UIFormTab.UIForm"/> that this <see cref="T:Habanero.BO.ClassDefinition.UIFormTab"/> is defined for.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.PropDefCol">
            <summary>
            Provides a collection of property definitions.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.#ctor">
            <summary>
            A constructor to create a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Add(Habanero.Base.IPropDef)">
            <summary>
            Add an existing property definition to the collection
            </summary>
            <param name="propDef">The existing property definition</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Remove(Habanero.Base.IPropDef)">
            <summary>
            Removes a property definition from the collection
            </summary>
            <param name="propDef">The Property definition to remove</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Contains(Habanero.Base.IPropDef)">
            <summary>
            Indicates if the specified property definition exists
            in the collection.
            </summary>
            <param name="propDef">The Property definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Contains(System.String)">
            <summary>
            Indicates if a property definition with the given key exists
            in the collection.
            </summary>
            <param name="propertyName">The propertyName to match</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.CreateBOPropertyCol(System.Boolean)">
            <summary>
            Creates a business object property collection that mirrors
            this one.  The new collection will contain a BOProp object for
            each PropDef object in this collection, with that BOProp object
            storing an instance of the PropDef object.
            </summary>
            <param name="isNewObject">Whether the new BOProps in the
            collection will be new objects. See PropDef.CreateBOProp
            for more info.</param>
            <returns>Returns the new BOPropCol object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Clone">
            <summary>
             Clones the propdefcol. NNB: The new propdefcol has the same propdefs in it (i.e. the propdefs are not copied).
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Clone(System.Boolean)">
            <summary>
            Clones the propdefcol. This method was created so that you could control the depth of the copy. 
            The reason is so that you can limit the
              extra memory used in cases where the propdef does not need to be copied.
            </summary>
            <param name="clonePropDefs">If true then makes a full copy of the propdefs else only 
            makes a copy of the propdefcol.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Equals(Habanero.BO.ClassDefinition.PropDefCol)">
            <summary>
             Returns true if the PropDefCol and all its PropDefs are equal.
            </summary>
            <param name="obj">the PropDefCol to compare to</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Add(System.Collections.Generic.IEnumerable{Habanero.Base.IPropDef})">
            <summary>
            Adds all the property definitions from the given collection
            into this one.
            </summary>
            <param name="propDefCol">The collection of property definitions</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Add(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.String,System.Object)">
            <summary>
            Create a new property definition and add it to the collection
            </summary>
            <param name="propName">The name of the property, e.g. surname</param>
            <param name="propType">The type of the property, e.g. string</param>
            <param name="propRWStatus">Rules for how a property can be
            accessed. See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
            <returns>Returns the new definition created, after it has
            been added to the collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.Add(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.Object)">
            <summary>
            Creates and adds a new property definition as before, but 
            assumes the database field name is the same as the property name.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDefCol.CheckPropNotAlreadyAdded(System.String)">
            <summary>
            Checks if a property definition with that name has already been added
            and throws an exception if so
            </summary>
            <param name="propName">The property name</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["surname"])
            </summary>
            <exception cref="T:System.ArgumentException">Thrown if the propertyName is not
            found. If you are checking for the existence of a propertyName, use the
            Contains() method.</exception>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDefCol.Count">
            <summary>
            Gets the number of definitions in this collection
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDefCol.ClassDef">
            <summary>
             The ClassDef that these PropDefs belong to.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.FilterPropertyDef">
            <summary>
            Defines a field to filter on.  A <see cref="T:Habanero.BO.ClassDefinition.FilterDef"/> consists of a set of these, and so a filter is a set of
            filter properties.
            The default filter type is the a text box that filters using a 'like' operator.
            To choose your own filter type specify the <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterType"/> and the <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterTypeAssembly"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.FilterPropertyDef.#ctor(System.String,System.String,System.String,System.String,Habanero.Base.FilterClauseOperator,System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            Standard constructor
            </summary>
            <param name="propertyName">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.PropertyName"/></param>
            <param name="label">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Label"/></param>
            <param name="filterType">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterType"/></param>
            <param name="filterTypeAssembly">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterTypeAssembly"/></param>
            <param name="filterClauseOperator">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterClauseOperator"/></param>
            <param name="parameters">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Parameters"/></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.FilterPropertyDef.#ctor(System.String,System.String,System.Type,Habanero.Base.FilterClauseOperator,System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            Constructor that creates a FilterPropertyDef class with a specified Filter control type using a type parameter.
            </summary>
            <param name="propertyName">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.PropertyName"/></param>
            <param name="label">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Label"/></param>
            <param name="filterType"> The <see cref="T:System.Type"/> object that will determine the values of the <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterType"/> and the <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterTypeAssembly"/> properties.</param>
            <param name="filterClauseOperator">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterClauseOperator"/></param>
            <param name="parameters">See <see cref="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Parameters"/></param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.PropertyName">
            <summary>
            The name of the property this filter applies to.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Label">
            <summary>
            The text to use to label the filter control.  This shows up as a label to the left of the control.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterType">
            <summary>
            The type of filter to use.  This type must implement ICustomFilter.  The default is StringTextBoxFilter
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterTypeAssembly">
            <summary>
            The assembly to find the filter class in.  The default is Habanero.UI.Base
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.FilterClauseOperator">
            <summary>
            The operator to use in this filter, for those filters that allow the use of different operators.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterPropertyDef.Parameters">
            <summary>
            A set of parameters to apply to the instantiated filter.  These are applied using reflection.  For instance, if
            a parameter is specified in this dictionary called 'AllowNull' with a value of 'true', then once the filter
            (which must be of type ICustomFilter) is 
            instantiated , the AllowNull property will be set with a value of true via
            reflection.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.FilterDef">
            <summary>
            Defines a filter for a grid.  Consists of a set of <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/>s, and a few settings, such as
            FilterMode (can be Filter or Search) and a number of columns that the filter controls will be layed out in
            using the ColumnLayoutManager (where 0 means a FlowLayoutManager is used).
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.FilterDef.#ctor(System.Collections.Generic.IList{Habanero.Base.IFilterPropertyDef})">
            <summary>
            The standard constructor, which takes the list of <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/>s defining the fields of the filter.
            </summary>
            <param name="filterPropertyDefs">The fields defining what to filter on.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.FilterDef.#ctor">
            <summary>
            The default constructor for the <see cref="T:Habanero.BO.ClassDefinition.FilterDef"/> class.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterDef.FilterPropertyDefs">
            <summary>
            The list of <see cref="T:Habanero.BO.ClassDefinition.FilterPropertyDef"/>s which define each filter.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterDef.FilterMode">
            <summary>
            The mode of filtering, where <see cref="F:Habanero.Base.FilterModes.Filter"/> means to filter already loaded data, and 
            <see cref="F:Habanero.Base.FilterModes.Search"/> means to search via a query to the data store in the process of loading.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.FilterDef.Columns">
            <summary>
            The number of columns to layout the filters in.  By default this is 0, and the layout used is that of a flow layout
            which simply adds controls until the right side of the container is reached and then moves to the next line.
            If this is set to a number greater than zero it will lay out the filter controls in that number of columns.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropStringDataMapper">
            <summary>
             Implements a data mapper for a Guid Property
             The property data mapper conforms to the GOF strategy pattern <seealso cref="T:Habanero.BO.ClassDefinition.BOPropDataMapper"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropStringDataMapper.ConvertValueToString(System.Object)">
            <summary>
            This mapper method <see cref="M:Habanero.BO.ClassDefinition.BOPropStringDataMapper.TryParsePropValue(System.Object,System.Object@)"/> will convert any valid Guid string to a valid Guid object 
              (ParsePropValue) and will convert a DBNull to a null value to null.
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropStringDataMapper.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This mapper method <see cref="M:Habanero.BO.ClassDefinition.BOPropStringDataMapper.ConvertValueToString(System.Object)"/> will convert any valid guid object to an 
              Invariant Guid string of format .ToString("B").ToUpperInvariant().
            </summary>
            <param name="valueToParse">value to convert.</param>
            <param name="returnValue"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLoaderMultiSource">
            <summary>
             This is an <see cref="T:Habanero.BO.IBusinessObjectLoader"/> that allows you to 
             Register the loader to use for various types.
             This allows the developer to load different obejcts in their
             application from different datasources e.g. Diff Databases.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderMultiSource.#ctor(Habanero.BO.IBusinessObjectLoader)">
            <summary>
             Creates this Loader with a default loader.
             This will be used in cases where there is not a specific loader registered.
            </summary>
            <param name="defaultBusinessObjectLoader"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderMultiSource.AddBusinessObjectLoader(System.Type,Habanero.BO.IBusinessObjectLoader)">
            <summary>
             registered a specific Business Object loader with a specified Object Type.
             When any object of this type is loaded in future it will be loaded with this.
             Loader. This allows you to have business objects loaded from Different sources.
             e.g. Different databases XML and Databases etc.
             The a loader is not registered for a specific type then the default loader will be used.
            </summary>
            <param name="type"></param>
            <param name="businessObjectLoader"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderMultiSource.GetRelatedBusinessObject(Habanero.BO.ISingleRelationship)">
            <summary>
            Loads a business object using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of the type defined by the relationship if one was found, otherwise null</returns>
        </member>
        <member name="T:Habanero.BO.IMultipleRelationship">
            <summary>
            Manages a relationship where the relationship owner relates to several
            other objects
            </summary>
        </member>
        <member name="P:Habanero.BO.IMultipleRelationship.OrderCriteria">
            <summary>
             The criteria by which this relationship is ordered. I.e. by default all the
             related objects are loaded in this order.
            </summary>
        </member>
        <member name="P:Habanero.BO.IMultipleRelationship.BusinessObjectCollection">
            <summary>
             The collection of business objects that is managed by this relationship.
            </summary>
        </member>
        <member name="P:Habanero.BO.IMultipleRelationship.CurrentBusinessObjectCollection">
            <summary>
             The collection of business objects under the control of this relationship.
            </summary>
        </member>
        <member name="T:Habanero.BO.MultipleRelationshipBase">
            <summary>
             The base class to be used for MultipleRelationships.
             
            </summary>
        </member>
        <member name="M:Habanero.BO.MultipleRelationshipBase.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IRelationshipDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constrcutor for <see cref="T:Habanero.BO.MultipleRelationshipBase"/>
            </summary>
            <param name="owningBo">The <see cref="T:Habanero.Base.IBusinessObject"/> that owns this BO.</param>
            <param name="lRelDef">The <see cref="T:Habanero.Base.IRelationshipDef"/> that identifies  </param>
            <param name="lBOPropCol"></param>
        </member>
        <member name="T:Habanero.BO.MultipleRelationship`1">
            <summary>
            Manages a relationship where the relationship owner relates to several
            other objects
            </summary>
        </member>
        <member name="F:Habanero.BO.MultipleRelationship`1._boCol">
            <summary> The collection storing the Related Business Objects. </summary>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.#ctor(Habanero.Base.IBusinessObject,Habanero.BO.ClassDefinition.RelationshipDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constructor to initialise a new relationship
            </summary>
            <param name="owningBo">The business object that owns the
            relationship</param>
            <param name="lRelDef">The relationship definition</param>
            <param name="lBOPropCol">The set of properties used to
            initialise the RelKey object</param>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.#ctor(Habanero.Base.IBusinessObject,Habanero.Base.IRelationshipDef,Habanero.Base.IBOPropCol,System.Int32)">
            <summary>
            Constructor to initialise a new relationship
            </summary>
            <param name="owningBo">The business object that owns the relationship</param>
            <param name="lRelDef">The relationship definition</param>
            <param name="lBOPropCol">The set of properties used to initialise the RelKey object</param>
            <param name="timeOut">The timeout between when the collection was last loaded.</param>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.MarkForDelete">
            <summary>
            If the relationship is <see cref="M:Habanero.Base.IBusinessObject.MarkForDelete"/>.DeleteRelated then
            all the related objects and their relevant children will be marked for Delete.
            See <see cref="P:Habanero.Base.IRelationship.DeleteParentAction"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.DoInitialisation">
            <summary>
            Do the initialisation of this relationship.
            </summary>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.UpdateRelationshipAsPersisted">
            <summary>
            Updates the Relationship as Persisted
            </summary>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.GetLoadedBOColInternal">
            <summary>
            Returns the underlying collection without refreshing it.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.MultipleRelationship`1.IsDeletable(System.String@)">
            <summary>
            Is there anything in this relationship to prevent the business object from being deleted.
            e.g. if there are related business objects that are not marked as mark for delete.
            </summary>
            <param name="message"></param>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.TimeOut">
            <summary>
            The timout in milliseconds. The collection will not be automatically refreshed from the DB if the timeout has not expired
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.HasDirtyEditingCollections">
            <summary>
            Are any of the Collections that store edits to this Relationship dirty.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.Habanero#BO#IMultipleRelationship#BusinessObjectCollection">
            <summary>
             The collection of business objects that is managed by this relationship.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.Habanero#BO#IMultipleRelationship#CurrentBusinessObjectCollection">
            <summary>
             The collection of business objects under the control of this relationship.
             This collection is not refreshed from the Database prior to being returned. I.e. This returns the 
             collection exactly in the state that it is in Memory.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.CurrentBusinessObjectCollection">
            <summary>
             The collection of business objects under the control of this relationship.
             This collection is not refreshed from the Database prior to being returned. I.e. This returns the 
             collection exactly in the state that it is in Memory.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.BusinessObjectCollection">
            <summary>
            Returns the collection for this relationship.  The collection is refreshed before
            it is returned.
            </summary>
        </member>
        <member name="P:Habanero.BO.MultipleRelationship`1.OrderCriteria">
            <summary>
             Returns the <see cref="P:Habanero.BO.MultipleRelationship`1.OrderCriteria"/> for this relationship (which determines how the 
             objects in the collection are ordered.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUIGridColumnLoader">
            <summary>
            Loads UI grid property definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadUIProperty(System.String)">
            <summary>
            Loads a grid property definition from the xml string provided
            </summary>
            <param name="xmlUIProp">The xml string</param>
            <returns>Returns a UIGridProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadUIProperty(System.Xml.XmlElement)">
            <summary>
            Loads a grid property definition from the xml element provided
            </summary>
            <param name="uiPropElement">The xml element</param>
            <returns>Returns a UIGridProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.Create">
            <summary>
            Creates a grid property definition from the data already loaded
            </summary>
            <returns>Returns a UIGridProperty object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadFromReader">
            <summary>
            Loads grid property definition data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadIsEditable">
            <summary>
            Loads the "isReadOnly" attribute from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadGridControlType">
            <summary>
            Loads the grid control type name from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadPropertyName">
            <summary>
            Loads the property name from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadHeading">
            <summary>
            Loads the heading from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadWidth">
            <summary>
            Loads the width from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadAlignment">
            <summary>
            Loads the alignment attribute from the reader. This method
            is called by LoadFromReader().
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIGridColumnLoader.LoadParameters">
            <summary>
            Loads the attributes from the reader. This method is
            called by LoadFromReader().
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlRuleLoader">
            <summary>
            Provides a super-class for loaders that read property rules from
            xml data
            </summary>
        </member>
        <member name="F:Habanero.BO.Loaders.XmlRuleLoader._name">
            <summary>
            The name of the rule
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.LoadRule(System.String,System.String)">
            <summary>
            Loads a property rule from the given xml string
            </summary>
            <param name="propTypeName"></param>
            <param name="ruleXml">The xml string containing the rule</param>
            <returns>Returns the property rule object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.LoadPropertyRule(System.Xml.XmlElement)">
            <summary>
            Loads a property rule from the given xml element
            </summary>
            <param name="ruleElement">The xml element containing the
             rule</param>
            <returns>Returns the rule object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.LoadFromReader">
            <summary>
            Loads the property rule data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.LoadRuleIntoProperty(System.String,Habanero.Base.IPropDef)">
            <summary>
            Loads the property rule from the given xml string and applies
            this to the specified property definition
            </summary>
            <param name="propertyRuleElement">The xml string containing the
            property rule</param>
            <param name="def">The property definition</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.Create">
            <summary>
            Creates the object using the data that has been read in using
            LoadFromReader(). This method needs to be implemented by the
            sub-class.
            </summary>
            <returns>Returns the object created</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlRuleLoader.CreatePropRule">
            <summary>
            Creates the Prop Rule for.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlKeyLoader">
            <summary>
            Loads key definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadKey(System.String,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a key definition from the xml string and property definition
            collection provided
            </summary>
            <param name="xmlKeyDef">The xml key definition string</param>
            <param name="propDefs">The collection of property definitions</param>
            <returns>Returns the key definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadKey(System.Xml.XmlElement,Habanero.Base.IPropDefCol)">
            <summary>
            Loads a key definition from the xml element and property definition
            collection provided
            </summary>
            <param name="keyElement">The xml key definition element</param>
            <param name="propDefs">The collection of property definitions</param>
            <returns>Returns the key definition</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.Create">
            <summary>
            Creates the key definition object from the data read in
            </summary>
            <returns>Returns a KeyDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadFromReader">
            <summary>
            Loads the data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadKeyName">
            <summary>
            Loads the key name
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadMessage">
            <summary>
            Loads the message to display to the user
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadKeyIgnoreIfNull">
            <summary>
            Loads the 'ignoreIfNull' attribute
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlKeyLoader.LoadKeyProperties">
            <summary>
            Loads the key properties
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidXmlDefinitionException">Thrown if an error
            occurs while loading the properties</exception>
        </member>
        <member name="T:Habanero.BO.BusinessObjectManagerNull">
            <summary>
            This is a Business Object Manager that can be used for ASP and similarly stateless environments.
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObjectManager">
            <summary>
             The business object manager is a class that contains weak references
             to all currently loaded business objects. The object manager is therefore used to ensure that the current user/session only
             ever has one reference to a particular business object. This is used to prevent situations where a business object loaded in
             two different ways by a single user is represented by two different instance objects in the system. Not having an object manager 
             could result in concurrency control exceptions even when only one user has.
             Whenever an object is requested to be loaded the Business Object loader first checks to see if the object already exists in the
              object manager if it does then the object from the object manager is returned else the newly loaded object is added to the
              object manager and then returned. NB: There are various strategies that the business object can implement to control the
              behaviour when the business object loader <see cref="T:Habanero.BO.IBusinessObjectLoader"/> gets a business object that is already in the object
              manager. The default behaviour is to refresh all the objects data if the object is not in edit mode. If the object is in edit mode 
              the default behaviour is to do nothing. This strategy helps to prevent Inconsistant read and Inconsistant write concurrency control
              errors.
             When an object is deleted from the datasource or disposed of by the garbage collecter it is removed from the object manager.
             When a new object is persisted for the first time it is updated to the object manager.
             
             The BusinessObjectManager is an implementation of the Identity Map Pattern 
             (See 216 Fowler 'Patters Of Enterprise Application Architecture' - 'Ensures that each object loaded only once by keeping every loaded
               object in a map. Looks up objects using the map when referring to them.'
             
             This class should not be used by the end user of the Habanero framework except in tests where the user is writing tests 
             where the application developer is testing for concurrency issues in which case the ClearLoadedObjects can be called.
             
             Only one Business object manager will be loaded per user session. To implement this the Singleton Pattern from the GOF is used.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObjectManager._businessObjectManager">
            <summary>
            The Single Instance of the <see cref="T:Habanero.BO.BusinessObjectManager"/> used by the Singleton.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusinessObjectManager._loadedBusinessObjects">
            <summary> The Busienss Objects Loaded in memory. This is a <see cref="T:System.WeakReference"/> so that the objects can still be garbage collected. </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.#ctor">
            <summary>
            The constructor for the Business Object Manager.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Add(Habanero.Base.IBusinessObject)">
            <summary>
            Add a business object to the object manager.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.ObjectID_Updated_Handler(System.Object,Habanero.Base.BOEventArgs)">
            <summary>
            If the businessObject's IDUpdated Event has been fired then the business object is removed with the
              old ID and added with the new ID. This is only required in cases with mutable primary keys.
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Contains(Habanero.Base.IBusinessObject)">
            <summary>
            Checks whether the business object is currently loaded.
            </summary>
            <param name="businessObject">The business object being checked.</param>
            <returns>Whether the busienss object is loadd or not</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Contains(Habanero.Base.IPrimaryKey)">
            <summary>
            Checks whether the business object is currently loaded.
            </summary>
            <param name="id"> The business object id being checked (bo.Id).</param>
            <returns> Whether the busienss object is loadd or not</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Contains(System.Guid)">
            <summary>
             Checks whether the business object is in the <see cref="T:Habanero.BO.BusinessObjectManager"/>.
            </summary>
            <param name="objectID">The <see cref="T:Habanero.Base.IBusinessObject"/>'s <see cref="P:Habanero.Base.IBusinessObject.ID"/>.<see cref="P:Habanero.Base.IPrimaryKey.ObjectID"/> value.</param>
            <returns>Whether the business object is in the <see cref="T:Habanero.BO.BusinessObjectManager"/> or not.</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Remove(Habanero.Base.IBusinessObject)">
            <summary>
            Removes the business object Business object manager. If a 
            seperate instance of the business object is loaded in the object manager then it will not be removed.
            </summary>
            <param name="businessObject">business object to be removed.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Remove(System.Guid,Habanero.Base.IBusinessObject)">
            <summary>
            Removes the business object Business object manager. NB: if a seperate instance of the object 
            is loaded in the object manager it will be removed. When possible user <see cref="M:Habanero.BO.BusinessObjectManager.Remove(Habanero.Base.IBusinessObject)"/>
            </summary>
            <param name="objectID">The string ID of the business object to be removed.</param>
            <param name="businessObject">The business object being removed at this position.</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.DeregisterForIDUpdatedEvent(Habanero.Base.IBusinessObject)">
            <summary>
            Dereigisters for the IDValueUpdatedEvent.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.ClearLoadedObjects">
            <summary>
            Clears all the currently loaded business objects from the object manager. This is only used in testing and debugging.
            NNB: this method should only ever be used for testing. E.g. where the tester wants to test concurrency control or 
            to ensure that saving or loading from the data base is correct.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Find``1(Habanero.Base.Criteria)">
            <summary>
            Finds all the loaded business objects that match the type T and the Criteria given.
            </summary>
            <typeparam name="T">The Type of business object to find</typeparam>
            <param name="criteria">The Criteria to match on</param>
            <returns>A collection of all loaded matching business objects</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.FindFirst``1(Habanero.Base.Criteria)">
            <summary>
            Finds the First Business Object that matches the type T and the Criteria given.
            </summary>
            <param name="criteria"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.GetBusinessObject(Habanero.Base.IPrimaryKey)">
            <summary>
             Returns the BusinessObject identified by key.
             If no Business object is found then returns null.
            </summary>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.Find(Habanero.Base.Criteria,System.Type)">
            <summary>
            Finds all the loaded business objects that match the type T and the Criteria given.
            </summary>
            <param name="criteria">The Criteria to match on</param>
            <param name="boType">The business object type being searched for</param>
            <returns>A collection of all loaded matching business objects</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.FindFirst(Habanero.BO.BOPrimaryKey,System.Type)">
            <summary>
            Finds the First Business Object that matches the type boType and the key given. Uses the internal composite key dictionary, 
            so this method is far faster than the other FindFirst methods for finding objects with composite keys.
            </summary>
            <param name="key"></param>
            <param name="boType"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.FindFirst(Habanero.BO.BOPrimaryKey,Habanero.Base.IClassDef)">
            <summary>
            Finds the First Business Object that matches the IClassDef classDef and the key given. Uses the internal composite key dictionary, 
            so this method is far faster than the other FindFirst methods for finding objects with composite keys.
            </summary>
            <param name="key"></param>
            <param name="boType"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.FindFirst(Habanero.Base.Criteria,System.Type)">
            <summary>
            Finds the First Business Object that matches the type boType and the Criteria given.
            </summary>
            <param name="criteria"></param>
            <param name="boType"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.FindFirst(Habanero.Base.Criteria,Habanero.Base.IClassDef)">
            <summary>
            Finds the First Business Object that matches the classDef classDef and the Criteria given.
            </summary>
            <param name="criteria">Criteria to match on.</param>
            <param name="classDef">ClassDef that the BusinessObject must match.</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.AddWithReplace(Habanero.BO.BusinessObject)">
            <summary>
             Adds the Business Object to the Object Manager and removes the existing object.
             This is used for Deserialising objects etc where a new exact deserialised replacement of the
             origional businessObject has been made.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectManager.GetObjectIfInManager(System.Guid)">
            <summary>
            Returns the object specified by the guid passed in, if the object exists in the object manager.
            Returns null if the object is not found.
            </summary>
            <param name="id">The Id of the object to search the object manager for</param>
            <returns>The object identified by the ID, or null if the object is not found in the manager</returns>
        </member>
        <member name="P:Habanero.BO.BusinessObjectManager.Instance">
            <summary>
             Returns the particular instance of the Business Object manager being used. 
             This implements the Singleton Design pattern.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectManager.Count">
            <summary>
            Gets the number of business objects currently loaded. This is used
            primarily for debugging and testing.
            </summary>
        </member>
        <member name="P:Habanero.BO.BusinessObjectManager.Item(System.Guid)">
            <summary>
            Returns the business object identified by the objectID from the business object manager.
            </summary>
            <param name="objectID">The business object id of the object being returned. (usually bo.ID.GetObjectID</param>
            <returns>The business object from the object manger.</returns>
        </member>
        <member name="P:Habanero.BO.BusinessObjectManager.Item(Habanero.Base.IPrimaryKey)">
            <summary>
            Returns the business object identified by the objectID from the business object manager.
            </summary>
            <param name="objectID">The business object id of the object being returned. (bo.ID) </param>
            <returns>The business object from the object manger.</returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIFormGrid">
            <summary>
            Manages property definitions for a grid in a user interface editing
            form that edits properties belonging to a class that is in a
            relationship with the object being edited.  For example, if you have
            order items that make up an order, contained in the editing form
            for the order would be a UIFormGrid in which you can edit the
            individual order items.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIFormGrid.#ctor(System.String,System.Type,System.String)">
            <summary>
            Constructor to initialise a new definition
            </summary>
            <param name="relationshipName">The relationship name</param>
            <param name="gridType">The grid type</param>
            <param name="correspondingRelationshipName">The corresponding
            relationship name</param>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormGrid.RelationshipName">
            <summary>
            Returns the relationship name
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormGrid.GridType">
            <summary>
            Returns the grid type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIFormGrid.CorrespondingRelationshipName">
            <summary>
            Returns the corresponding relationship name
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.UIForm">
            <summary>
            Manages a collection of property definitions for a user interface
            editing form, as specified in the class definitions xml file
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.#ctor">
            <summary>
            Constructor to initialise a new definition
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.#ctor(Habanero.BO.ClassDefinition.UIFormTab[])">
            <summary>
            Construct the UIForm with its tabs
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Add(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Adds a tab to the form
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Remove(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Removes a tab from the form
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Contains(Habanero.BO.ClassDefinition.IUIFormTab)">
            <summary>
            Checks if the form contains the specified tab
            </summary>
            <param name="tab">A UIFormTab object</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.GetEnumerator">
            <summary>
            Returns the definition list's enumerator
            </summary>
            <returns>Returns an IEnumerator-type object</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the collection to an Array, 
            starting at a particular Array index
            </summary>
            <param name="array">The array to copy to</param>
            <param name="index">The zero-based index position to start
            copying from</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.op_Equality(Habanero.BO.ClassDefinition.UIForm,Habanero.BO.ClassDefinition.UIForm)">
            <summary>
             overloads the operator == 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.op_Inequality(Habanero.BO.ClassDefinition.UIForm,Habanero.BO.ClassDefinition.UIForm)">
            <summary>
             overloads the operator != 
            </summary>
            <param name="a"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Clone">
            <summary>
             Clones the collection of ui columns this performs a copy of all uicolumns but does not copy the uiFormFields.
            </summary>
            <returns>a new collection that is a shallow copy of this collection</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Equals(Habanero.BO.ClassDefinition.UIForm)">
            <summary>
            Indicates whether the current object is equal to another object of the same type.
            </summary>
            
            <returns>
            true if the current object is equal to the other parameter; otherwise, false.
            </returns>
            
            <param name="otherUIForm">An object to compare with this object.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object"></see> is equal to the current <see cref="T:System.Object"></see>; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object"></see> to compare with the current <see cref="T:System.Object"></see>. </param><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.UIForm.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. <see cref="M:System.Object.GetHashCode"></see> is suitable for use in hashing algorithms and data structures like a hash table.
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.Item(System.Int32)">
            <summary>
            Provides an indexing facility so that the contents of the definition
            collection can be accessed with square brackets like an array
            </summary>
            <param name="index">The index position to access</param>
            <returns>Returns the property definition at the index position
            specified</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.Count">
            <summary>
            Returns the number of definitions held
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.SyncRoot">
            <summary>
            Returns the synchronisation root
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.IsSynchronized">
            <summary>
            Indicates whether the definitions are synchronised
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.Width">
            <summary>
            Gets and sets the width
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.Height">
            <summary>
            Gets and sets the height
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.Title">
            <summary>
            Gets and sets the heading
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.UIForm.UIDef">
            <summary>
             The UI Def that this UIForm is related to.
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.ClassDefValidator">
            <summary>
             This class validates all Class Definitions once they have been loaded.
             It can be used to validate Class Definitions regardless of how they are 
             loaded (i.e. whether they are loaded via a DB, XML or Reflection (AutoMapping)
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefValidator.#ctor(Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
             Constructs a Class Def Validator with a <see cref="T:Habanero.BO.ClassDefinition.IDefClassFactory"/>
            </summary>
            <param name="defClassFactory"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefValidator.ValidateClassDefs(Habanero.Base.ClassDefCol)">
            <summary>
             Validates the ClassDefinitions contained in classDefCol
            </summary>
            <param name="classDefCol"></param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.ClassDefValidator.CheckReverseRelationshipRelKeyDefProps(Habanero.Base.IRelationshipDef,Habanero.Base.IClassDef,System.String,Habanero.Base.IRelationshipDef,Habanero.Base.IClassDef)">
            <summary>
            Checks to see if the relationship and reverse relationship are defined for the same relationship.
            </summary>
            <param name="relationshipDef"></param>
            <param name="relatedClassDef"></param>
            <param name="reverseRelationshipName"></param>
            <param name="reverseRelationshipDef"></param>
            <param name="classDef"></param>
        </member>
        <member name="T:Habanero.BO.TransactionCommitterInMemory">
            <summary>
            Provides a transaction committer that persists data to the
            system memory. The committer carries out the same steps as a Database one would,
            but the object is actually stored in an "in memory" data store (see <see cref="T:Habanero.BO.DataStoreInMemory"/>).
            The DataStoreInMemory only lasts for the lifetime of the application, and is
            not shared between instances of an application.
            <br/>
            It is mainly used in testing, with the following advantages:
            <ul>
            <li>Speed is vastly improved, especially where there are a large number of tests</li>
            <li>The data store structure is more agile - you can add new structures without having
            to amend a database</li>
            <li>Tests can be run on multiple machines without replicating a database</li>
            </ul>
            Be aware that an application that only tests with in-memory databases may fail
            to pick up structural flaws that might occur when the application is released.  In-memory
            databases best serve tests of logic.
            <br/>
            See <see cref="T:Habanero.Base.ITransactionCommitter"/> for further
            clarification on transaction committers.
            </summary>
        </member>
        <member name="T:Habanero.BO.TransactionCommitter">
            <summary>
            This base class manages and commits a collection of ITransactions to a datasource. 
            The sub classes of this class implement a specific strategy e.g. Committing to a 
            database, file, message queue, Webservice etc.
            This provides an Implementation of the 'Unit of Work' Pattern 
            (Fowler - Patterns of Enterprise Application Architecture 184 
              ‘Maintains a list of objects affected by a business transaction and co-ordinates 
              the writing out of changes and the detection and resolution of concurrency problems’).
            
            The TransactionCommitter also implements the GOF Strategy Pattern and as such 
              the transaction committer can be implemented with a concrete class or the ITransactionCommitter
              can be implemented by the Application developer to provide any functionality required for the 
              updating of business objects to a datastore.
            The TransactionCommitter works with the <see cref="T:Habanero.BO.TransactionalBusinessObject"/>. 
            The <see cref="T:Habanero.BO.TransactionalBusinessObject"/> implements the GOF adaptor pattern. 
              As well as the Fowler - DataMapper 165 pattern. As such it
              wraps the business object and uses the Class definitions (MetaData Mapping Fowler 306) to map the
              business object to the Datastore. It also provides methods to call through to underlying Business
              object methods.
            
            The TransactionCommitter and <see cref="T:Habanero.BO.TransactionalBusinessObject"/> also work together to ensure that 
              all concurrency control <see cref="T:Habanero.Base.IConcurrencyControl"/> strategies for the business object have been 
              implemented.
            
            The Application developer can also add Transactions to the TransactionCommitter that are not Business objects
              these objects must implement the <see cref="T:Habanero.Base.ITransactional"/> interface. This is typically used 
              when the application developer needs to insert or updated a datasource that is not wrapped by a business object.
              E.g. The application developer may implement a NumberGenerator to generate a code e.g. Product code.
              The Habanero Framework uses this capability to write out TransactionLogTable.
            When <see cref="M:Habanero.BO.TransactionCommitter.CommitTransaction"/> is called all the objects in the TransactionCommitter are executed to the
              datasource in the case of the <see cref="T:Habanero.Base.ITransactionCommitter"/> these are executed within an individual 
              transaction if the transaction fails then all updates to the database are rolled back.
            
            In cases where a single object is edited and persisted the Transaction committer does not have to be 
              used by the Application developer. The architecture uses a convenience method
              <see cref="T:Habanero.BO.BusinessObject"/>  <see cref="M:Habanero.BO.BusinessObject.Save"/> this 
              creates the appropriate transactionCommitter and commits it.
            
            The TransactionCommitter is very simple to use the Application developer can add the required objects to
              Transaction Committer. When the business transaction is complete the <see cref="M:Habanero.BO.TransactionCommitter.CommitTransaction"/> is called.
            <example>
                   ContactPerson contactP = New ContactPerson();
                   //set relevant data for contact person.
                   committerDB.AddBusinessObject(contactP);
                   committerDB.CommitTransaction();
            </example>
            </summary>
        </member>
        <member name="F:Habanero.BO.TransactionCommitter._originalTransactions">
            <summary>
            A list of all the transactions that are added to the transaction committer by the application developer.
            </summary>
        </member>
        <member name="F:Habanero.BO.TransactionCommitter._executedTransactions">
            <summary>
            A list of all transactions that are executed by the transaction committer.
            The executed transactions may exceed the origionalTransactions due to the fact that the
            Business object can add additional Business objects to the transaction. This is typically 
            done when a business object has composite children objects and it controls the persisting of these children.
            E.g. in the case where an Invoice has InvoiceLines the Invoice will add any of its lines that are dirty to 
            the _executedTransactions list.
            </summary>
        </member>
        <member name="F:Habanero.BO.TransactionCommitter._commitSuccess">
            <summary>
            A flag to indicate whether the commitToDataSource was successful or not.s
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.#ctor">
            <summary>
             Constructs the TransactionCommitter
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.AddBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
             Add an object of type business object to the transaction.
             The DBTransactionCommiter wraps this Business Object in the
             appropriate Transactional Business Object
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.AddTransaction(Habanero.Base.ITransactional)">
             
            <summary>
             This method adds an <see cref="T:Habanero.Base.ITransactional"/> to the list of transactions.
            </summary>
            <param name="transaction"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CommitTransaction">
            <summary>
             Commit the transactions to the datasource e.g. the database, file, memory DB
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.Begin">
            <summary>
            Begins the transaction. First validates that all the objects in the transaction are valid.
            Once the objects are validated the Datasource transaction is started.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.UpdateObjectBeforePersisting">
            <summary>
            If the transaction is a transactional business object then the Upate object before persisting method
            of the transactional business object is called. The default behaviour of this is to call through to the 
             UpdateObjectBeforePersisting method of the business object.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.ValidateTransactionCanBePersisted">
            <summary>
            Validates each Itransactional object in the collection and builds up a
            list of errors of error messages.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CheckObjectsAreValid">
            <summary>
            Check that the object is in a valid state i.e. no <see cref="T:Habanero.Base.IPropRule"/>'s are broken.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CheckTransactionsCanBePersisted">
            <summary>
            Verifies that any <see cref="T:Habanero.BO.TransactionalBusinessObject"/>'s that are marked can be persisted
              can be deleted. <see cref="M:Habanero.BO.TransactionalBusinessObject.CheckCanDelete(System.String@)"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.ValidateObjectsCanBeDeleted">
            <summary>
            Verifies that any <see cref="T:Habanero.BO.TransactionalBusinessObject"/>'s that are marked for deletion
              can be deleted. <see cref="M:Habanero.BO.TransactionalBusinessObject.CheckCanDelete(System.String@)"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CheckForDuplicateObjects">
            <summary>
            Checks for any Duplicate objects by checking the objects <see cref="T:Habanero.Base.IPrimaryKey"/> and alternate keys 
            <see cref="T:Habanero.Base.IKeyDef"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CheckForConcurrencyErrors">
            <summary>
            Checks any Concurrency control errors for the <see cref="T:Habanero.BO.TransactionalBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.BeginDataSource">
            <summary>
            Begins the transaction on the appropriate databasource.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.Execute">
            <summary>
            Executes the transactions and rolls back in the event of an error.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)">
            <summary>
            Tries to execute an individual transaction against the datasource.
            1'st phase of a 2 phase database commit.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.TryRollback">
            <summary>
            In the event of any errors occuring during executing statements to the datasource 
            <see cref="M:Habanero.BO.TransactionCommitter.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)"/> or during committing to the datasource
            <see cref="M:Habanero.BO.TransactionCommitter.CommitToDatasource"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.Commit">
            <summary>
            Commits all the successfully executed statements to the datasource.
            2'nd phase of a 2 phase database commit and 
            marks all the ITransactional objects as committed.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CommitToDatasource">
            <summary>
            Commits all the successfully executed statements to the datasource.
            2'nd phase of a 2 phase database commit.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.UpdateTransactionsAsCommited">
            <summary>
            Marks all the ITransactional objects as committed.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.CreateTransactionalBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
            Used to decorate a businessObject in a TransactionalBusinessObject. To be overridden in the concrete 
            implementation of a TransactionCommitter depending on the type of transaction you need.
            </summary>
            <param name="businessObject">The business object to decorate</param>
            <returns>A decorated Business object (TransactionalBusinessObject)</returns>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.DereferenceRelatedChildren(Habanero.Base.IBusinessObject)">
            <summary>
            Deference Related Children.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.DeleteRelatedChildren(Habanero.Base.IBusinessObject)">
            <summary>
            Deletes Related Children.
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.AddAddedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Add the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitter.AddRemovedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Remove the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="P:Habanero.BO.TransactionCommitter.ExecutedTransactions">
            <summary>
            A List of all the transactions that where actually committed to the data source. This will include any updates required
            as a result of concurrency control, transaction logging, or deleting or dereferrencing children.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionCommitter.OriginalTransactions">
            <summary>
             Returns a list of transactions that will be committed. (i.e. the list that the user origionally added.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionCommitter.CommitSuccess">
            <summary>
             Returns true if the transaction was successfully committed to the databasource.
             Else returns false. If no attempt to commit has been made will return false
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.#ctor(Habanero.BO.DataStoreInMemory)">
            <summary>
             Construct and transaction committer that works with the specified In memory data store.
            </summary>
            <param name="dataStoreInMemory">The datastore this transaction committer is working against.</param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.BeginDataSource">
            <summary>
            Begins the transaction on the appropriate databasource.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.CreateTransactionalBusinessObject(Habanero.Base.IBusinessObject)">
            <summary>
            Used to decorate a businessObject in a TransactionalBusinessObject. To be overridden in the concrete 
            implementation of a TransactionCommitter depending on the type of transaction you need.
            </summary>
            <param name="businessObject">The business object to decorate</param>
            <returns>A decorated Business object (TransactionalBusinessObject)</returns>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.AddAddedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Add the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.AddRemovedChildBusinessObject``1(Habanero.Base.IRelationship,``0)">
            <summary>
            Remove the Business Object for a child added to the relationship.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="relationship"></param>
            <param name="businessObject"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)">
            <summary>
            Commits the transaction to the In Memory data Store.
            </summary>
            <param name="transaction"></param>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.CommitToDatasource">
            <summary>
            Commits all the successfully executed statements to the datasource.
            2'nd phase of a 2 phase database commit.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionCommitterInMemory.TryRollback">
            <summary>
            In the event of any errors occuring during executing statements to the datasource 
            <see cref="M:Habanero.BO.TransactionCommitter.ExecuteTransactionToDataSource(Habanero.Base.ITransactional)"/> or during committing to the datasource
            <see cref="M:Habanero.BO.TransactionCommitter.CommitToDatasource"/>
            </summary>
        </member>
        <member name="T:Habanero.BO.RelKey">
            <summary>
            Holds a collection of properties on which two classes in a relationship
            are matching
            </summary>
        </member>
        <member name="M:Habanero.BO.RelKey.#ctor(Habanero.BO.ClassDefinition.RelKeyDef,Habanero.Base.IBOPropCol)">
            <summary>
            Constructor to initialise a new instance. This initialises the RelKey and sets all its
            relationship properties (IRelProp).
            </summary>
            <param name="lRelKeyDef">The relationship key definition</param>
            <param name="lBoPropCol">The properties of the business object that this relationship key
            is being created form</param>
        </member>
        <member name="M:Habanero.BO.RelKey.Add(Habanero.Base.IRelProp)">
            <summary>
            Adds the given RelProp to the key
            </summary>
            <param name="relProp">The RelProp object to add</param>
        </member>
        <member name="M:Habanero.BO.RelKey.Contains(System.String)">
            <summary>
            Indicates whether a property with the given name is part of the key
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if a property with this name is held</returns>
        </member>
        <member name="M:Habanero.BO.RelKey.HasRelatedObject">
            <summary>
            Indicates if there is a related object.
            If all relationship properties are null then it is assumed that 
            there is no related object.
            </summary>
            <returns>Returns true if there is a valid relationship</returns>
        </member>
        <member name="M:Habanero.BO.RelKey.GetEnumerator">
            <summary>
            Returns an enumrated for theis RelKey to iterate through its RelProps
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.RelKey.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="E:Habanero.BO.RelKey.RelatedPropValueChanged">
            <summary>
            Event raised when the value for one of the Properties (<see cref="T:Habanero.Base.IRelProp"/>) for this <see cref="T:Habanero.Base.IRelKey"/> is changed
            </summary>
        </member>
        <member name="P:Habanero.BO.RelKey.Item(System.String)">
            <summary>
            Provides an indexing facility so that the properties can be
            accessed with square brackets like an array
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns the RelProp object found with that name</returns>
        </member>
        <member name="P:Habanero.BO.RelKey.Item(System.Int32)">
            <summary>
            Indexes the array of relprops this relkey contains.
            </summary>
            <param name="index">The position of the relprop to get</param>
            <returns>Returns the RelProp object found with that name</returns>
        </member>
        <member name="P:Habanero.BO.RelKey.Criteria">
            <summary>
            Returns a copy of the key's Criteria (ie the search string matching this key). 
            </summary>
            <returns>Returns a Criteria object</returns>
        </member>
        <member name="P:Habanero.BO.RelKey.Count">
            <summary>
             Gets the number of properties in this relationship key.
            </summary>
        </member>
        <member name="T:Habanero.BO.RelationshipNotFoundException">
            <summary>
            An exception to throw if a specified relationship was not found
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipNotFoundException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipNotFoundException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.RelationshipNotFoundException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.RelationshipNotFoundException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.RelationshipCol">
            <summary>
            Manages a collection of relationships between business objects
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise a new relationship, specifying the
            business object that owns the relationships
            </summary>
            <param name="bo">The business object</param>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.Add(Habanero.Base.IRelationship)">
            <summary>
            Adds a relationship to the business object
            </summary>
            <param name="lRelationship">The relationship to add</param>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.Add(System.Collections.Generic.IEnumerable{Habanero.Base.IRelationship})">
            <summary>
            Adds a collection of relationships to the business object
            </summary>
            <param name="relCol">The collection of relationships to add</param>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetRelatedObject(System.String)">
            <summary>
            Returns the business object that is related to this object
            through the specified relationship (eg. would return a father
            if the relationship was called "father").  This method is to be
            used in the case of single relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a multiple relationship, when a
            single one was expected</exception>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetRelatedObject``1(System.String)">
            <summary>
            Returns the business object that is related to this object
            through the specified relationship (eg. would return a father
            if the relationship was called "father").  This method is to be
            used in the case of single relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a multiple relationship, when a
            single one was expected</exception>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetSingle(System.String)">
            <summary>
             Returns a single relationship for with the specified relationship name.
            </summary>
            <param name="relationshipName">The specified relationship name</param>
            <returns>THe single relationship</returns>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetSingle``1(System.String)">
            <summary>
             Returns a strongly typed single relationship for with the specified relationship name.
            </summary>
            <param name="relationshipName">The specified relationship name</param>
            <returns>THe single relationship</returns>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.Contains(System.String)">
            <summary>
             Determines whether the Relationship Collections contains the specified Relationship
            </summary>
            <param name="relationshipName">The name of the relationship to search for</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetRelatedCollection(System.String)">
            <summary>
            Returns a collection of business objects that are connected to
            this object through the specified relationship (eg. would return
            a father and a mother if the relationship was "parents").  This
            method is to be used in the case of multiple relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object collection</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a single relationship, when a
            multiple one was expected</exception>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetRelatedCollection``1(System.String)">
            <summary>
            Returns a collection of business objects that are connected to
            this object through the specified relationship (eg. would return
            a father and a mother if the relationship was "parents").  This
            method is to be used in the case of multiple relationships.
            </summary>
            <param name="relationshipName">The name of the relationship</param>
            <returns>Returns a business object collection</returns>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship specified is a single relationship, when a
            multiple one was expected</exception>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetMultiple``1(System.String)">
            <summary>
             Returns a strongly typed multiple relationship for with the specified relationship name.
            </summary>
            <param name="relationshipName">The specified relationship name</param>
            <returns>The multiple relationship</returns>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetMultiple(System.String)">
            <summary>
             Returns a multiple relationship for with the specified relationship name.
            </summary>
            <param name="relationshipName">The specified relationship name</param>
            <returns>The multiple relationship</returns>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.SetRelatedObject(System.String,Habanero.Base.IBusinessObject)">
            <summary>
            Sets the related business object of a <b>single</b> relationship.  
            This includes setting the RelKey properties of the relationship owner 
            to the value of the related object's properties.
            </summary>
            <param name="relationshipName">The name of a single relationship</param>
            <param name="relatedObject">The new related object</param>
            <exception cref="T:Habanero.Base.Exceptions.InvalidRelationshipAccessException">Thrown if
            the relationship named is a multiple relationship instead of a
            single one</exception>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.GetEnumerator">
            <summary>
             Returns an Iterator that iterates through the RelationshipCol
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.RelationshipCol.IsDirty">
            <summary>
             Returns whether the relationship is dirty or not.
             A relationship is always dirty if it has Added, created, removed or deleted Related business objects.
             If the relationship is of type composition or aggregation then it is dirty if it has any 
              related (children) business objects that are dirty.
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipCol.Count">
            <summary>
             Returns the Number of Relationships in this Collection
            </summary>
        </member>
        <member name="P:Habanero.BO.RelationshipCol.Item(System.String)">
            <summary>
            Provides an indexing facility so the relationships can be
            accessed with square brackets like an array.
            Returns the relationship with the given name.
            </summary>
            <exception cref="T:Habanero.BO.RelationshipNotFoundException">Thrown
            if a relationship with the given name is not found</exception>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlClassDefsLoader">
            <summary>
            Facilitates the loading of class definitions from xml data, which define
            the terms and properties of an xml structure before it can be
            populated with data
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.IClassDefsLoader">
            <summary>
            An interface to model classes that load class definitions from
            xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.IClassDefsLoader.LoadClassDefs(System.String)">
            <summary>
            Loads class definitions from the xmlPassed into the Loader.
            </summary>
            <returns>Returns an ClassDefCol containing the definitions</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.IClassDefsLoader.LoadClassDefs">
            <summary>
            Loads class definitions from loader source data
            </summary>
            <returns>Returns an ClassDefCol containing the definitions</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.#ctor(System.String,Habanero.BO.Loaders.DtdLoader)">
            <summary>
            Constructor to create a new list of class definitions from the
            string provided, using the dtd path provided
            </summary>
            <param name="xmlClassDefs">The string containing all the
            class definitions. If you are loading these from 
            a file, you can use 
            <code>new StreamReader("filename.xml").ReadToEnd()</code>
            to create a continuous string.</param>
            <param name="dtdLoader">The dtd loader</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.#ctor(System.String,Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to create a new list of class definitions from the
            string provided, using the dtd path provided
            </summary>
            <param name="xmlClassDefs">The string containing all the
            class definitions. If you are loading these from 
            a file, you can use 
            <code>new StreamReader("filename.xml").ReadToEnd()</code>
            to create a continuous string.</param>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.LoadClassDefs(System.String)">
            <summary>
            Loads class definitions, converting them from a 
            string containing these definitions to an IList object.
            If the conversion fails, an error message will be sent to the 
            console.
            </summary>
            <param name="xmlClassDefs">The string containing all the
            class definitions. If you are loading these from 
            a file, you can use 
            <code>new StreamReader("filename.xml").ReadToEnd()</code>
            to create a continuous string.</param>
            <returns>Returns an IList object containing the definitions</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.LoadClassDefs">
            <summary>
            As with LoadClassDefs(string), but uses the definition string 
            provided on instatiation of the object if you used the
            parameterised constructor.
            </summary>
            <returns>Returns a ClassDefCol containing the definitions</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.LoadClassDefs(System.Xml.XmlElement)">
            <summary>
            As with LoadClassDefs(string), but uses the root element as a
            starting reference point.
            </summary>
            <param name="allClassesElement">The root element</param>
            <returns>Returns an IList object containing the definitions</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.Create">
            <summary>
            Returns the IList object that contains the class definitions
            </summary>
            <returns>Returns an IList object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlClassDefsLoader.LoadFromReader">
            <summary>
            Loads the class definition data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.Trigger">
            <summary>
            Manages a trigger that causes another event based on a value change
            in a given user interface control.  Triggers can be used for a range
            of purposes, such as filtering different drop-down boxes based on
            earlier choices by a user (eg. country > province > city), or disabling
            certain controls when the user sets some control to a certain value.
            </summary>
            TODO_ ERIC:
            - Consider switching enabled to readonly, or adding support for
            readonly or adding attribute/parameter in field for enabled (problem is
            you can't have something disabled initially so you enable it using a
            trigger)
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.#ctor(System.String,System.String,System.String,System.String,System.String)">
            <summary>
            Constructor to initialise a new trigger.<br/>
            NOTE_: you cannot set both a target and triggeredBy value.
            </summary>
            <param name="triggeredBy">The property name of the field
            whose value change fires the trigger</param>
            <param name="target">The property name of the field that
            is affected by a fired trigger</param>
            <param name="conditionValue">A literal value that must be
            held by the triggered-by source in order for the trigger
            to fire.  In the case of lookup-lists, this value can be
            the string as shown in the drop-down.</param>
            <param name="action">The type of action to take when the
            trigger is ready to fire - see Action for options available.</param>
            <param name="value">The value used by the action - see
            Action for relevant options.</param>
            <exception cref="T:System.ArgumentException">Thrown if both the
            triggered-by and target properties are set - only one can
            be set at any time.</exception>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.CheckTargetOrSourceAreNull">
            <summary>
            Checks that the target and the triggered-by source have not both been set
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.CheckTriggerValid(Habanero.BO.ClassDefinition.Trigger)">
            <summary>
            Checks that the various attributes of a trigger are valid
            </summary>
            <param name="trigger">The affected trigger</param>
            <returns>Returns true if valid, or throws an exception if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.CheckActionValid(System.String)">
            <summary>
            Checks if the given action is valid.  This is a standard
            checkpoint for all code using triggers.
            </summary>
            <param name="action">The action string to check</param>
            <returns>Returns true if valid, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.CheckTargetTriggerCombinationValid(Habanero.BO.ClassDefinition.Trigger)">
            <summary>
            Checks that the triggeredBy and target settings are valid
            for the specified action
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.Trigger.CheckValueValid(Habanero.BO.ClassDefinition.Trigger)">
            <summary>
            Checks that the value attribute is appropriate for the type
            of action, or that the value attribute is included where required
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.Trigger.TriggeredBy">
            <summary>
            Gets the property name of the field, if any, which must have a value change
            in order for this trigger to be fired.  This property is used when the
            trigger has been created on the target - alternatively place the trigger on
            the source and indicate the Target.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.Trigger.Target">
            <summary>
            Gets the property name of the field, if any, which will be affected by the
            designated action when the source field has had a value change.  This property
            is used when the trigger has been created on the source field with the value
            change - alternatively place the trigger on the Target and indicate
            the source using TriggeredBy.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.Trigger.ConditionValue">
            <summary>
            Gets and sets a condition value that the source field must
            hold in order to cause the trigger to fire.  In most cases you can
            simply specify the value as a string literal, but in lookup lists you
            can specify the string value as shown in the drop-down.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.Trigger.Action">
            <summary>
            Gets and sets the name of the action to take when the trigger is
            ready to fire.  Possible options include:
            <ul>
            <li>assignLiteral - assigns the literal value as specified between the quotes
            in the value</li>
            <li>assignProperty - assigns the current value of the property given in the value</li>
            <li>filter - filters a lookup list with an exact match on the
            trigger property value (assumes that the target has a field with the same name
            as the trigger source)</li>
            <li>execute - calls a given method as provided in the value</li>
            <li>enable - enables/disables the control of the targer property, provide
            "true" or "false" as the value</li>
            </ul>
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.Trigger.Value">
            <summary>
            Gets and sets the relevant value to use for the action given.  See Action
            for further clarification of the options available.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOPropCol">
            <summary>
            Manages a collection of BOProp objectsn (See <see cref="T:Habanero.Base.IBOProp"/>)
            Typically this collection is created when the <see cref="T:Habanero.Base.IBusinessObject"/>
             is created. The collection is created based on Property Definition (<see cref="T:Habanero.Base.IPropDef"/>)
             for the Class definition (<see cref="T:Habanero.Base.IClassDef"/>) that defines the Business Object (<see cref="T:Habanero.Base.IBusinessObject"/>).
            This collection in should thus not be used by the application developer.
            This collection is typically controlled by an <see cref="T:Habanero.Base.IBusinessObject"/>
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropCol.#ctor">
            <summary>
            Constructor to initialise a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropCol.Add(Habanero.Base.IBOProp)">
            <summary>
            Adds a property to the collection
            </summary>
            <param name="boProp">The property to add</param>
        </member>
        <member name="M:Habanero.BO.BOPropCol.Add(Habanero.Base.IBOPropCol)">
            <summary>
            Copies the properties from another collection into this one
            </summary>
            <param name="propCol">A collection of properties</param>
        </member>
        <member name="M:Habanero.BO.BOPropCol.Remove(System.String)">
            <summary>
            Remove a specified property from the collection
            </summary>
            <param name="propName">The property name</param>
        </member>
        <member name="M:Habanero.BO.BOPropCol.Contains(System.String)">
            <summary>
            Indicates whether the collection contains the property specified
            </summary>
            <param name="propName">The property name</param>
            <returns>Returns true if found</returns>
        </member>
        <member name="M:Habanero.BO.BOPropCol.RestorePropertyValues">
            <summary>
            Restores each of the property values to their PersistedValue
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropCol.BackupPropertyValues">
            <summary>
            Copies across each of the properties' current values to their
            persisted values
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropCol.IsValid(System.String@)">
            <summary>
            Indicates whether all of the held property values are valid
            </summary>
            <param name="invalidReason">A string to alter if one or more
            property values are invalid</param>
            <returns>Returns true if all the property values are valid, false
            if any one is invalid</returns>
        </member>
        <member name="M:Habanero.BO.BOPropCol.IsValid(System.Collections.Generic.IList{Habanero.Base.IBOError}@)">
            <summary>
            Indicates whether all of the held property values are valid
            </summary>
            <param name="errors">A list of errors</param>
            <returns>Returns true if all the property values are valid, false
            if any one is invalid</returns>
        </member>
        <member name="M:Habanero.BO.BOPropCol.System#Collections#Generic#IEnumerable{Habanero#Base#IBOProp}#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.BO.BOPropCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.BOPropCol.Item(System.String)">
            <summary>
            Provides an indexing facility so the contents of the collection
            can be accessed with square brackets like an array
            </summary>
            <param name="propName">The name of the property to access</param>
            <returns>Returns the property if found, or null if not</returns>
        </member>
        <member name="P:Habanero.BO.BOPropCol.DirtyXml">
            <summary>
            Returns an xml string containing the properties whose values
            have changed, along with their old and new values
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropCol.Values">
            <summary>
            Returns a collection containing all the values being held
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropCol.SortedValues">
            <summary>
            Returns the collection of property values as a SortedList
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropCol.Count">
            <summary>
             Returns a count of the number of properties <see cref="T:Habanero.Base.IBOProp"/> in the properties collection.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOPropCol.HasAutoIncrementingField">
            <summary>
            Indicates whether any of the properties in this collection are defined as autoincrementing fields.
            An auto incrementing field is a field that relies on the database auto incrementing a number.
            E.g. every time a new row is inserted into a table the value of the auto incrementing field is 
            incremented. To update the business object accordingly this value needs to be updated to the 
            matching property
            </summary>
        </member>
        <member name="T:Habanero.BO.BOPropMapperFactory">
            <summary>
            A Factory for creating the appropriate <see cref="T:Habanero.BO.BOPropertyMapper"/>
            depending on the propertyName.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropMapperFactory.CreateMapper(Habanero.Base.IBusinessObject,System.String)">
            <summary>
            Creates the appropriate PropertyMapper based on the BusinessObject and propertyName.
            </summary>
            <param name="businessObject"></param>
            <param name="propertyName"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.SelectQuery">
            <summary>
            A model of a Select Query that can be used to load data from a data store.  This includes the Fields to load, the source to load from
            (such as the database table name), the OrderCriteria to use (what fields must be sorted on), the Criteria to use (only objects that
            match the given criteria will be loaded), and the number of objects to load (defined by the Limit).
            </summary>
        </member>
        <member name="M:Habanero.BO.SelectQuery.#ctor">
            <summary>
             Creates a SelectQuery with no Criteria and no fields.  In order to use the SelectQuery at least on field must be added
             to the <see cref="P:Habanero.BO.SelectQuery.Fields"/>, and a <see cref="P:Habanero.BO.SelectQuery.Source"/> must be specified.
            </summary>
        </member>
        <member name="M:Habanero.BO.SelectQuery.#ctor(Habanero.Base.Criteria)">
            <summary>
             Creates a SelectQuery with a Critiria and no fields.  In order to use the SelectQuery at least on field must be added
             to the <see cref="P:Habanero.BO.SelectQuery.Fields"/>, and a <see cref="P:Habanero.BO.SelectQuery.Source"/> must be specified.
            </summary>
             <param name="criteria">The Criteria to initialise this SelectQuery with.</param>
        </member>
        <member name="P:Habanero.BO.SelectQuery.Criteria">
            <summary>
            The Criteria to use when loading. Only objects that match these criteria will be loaded.
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.Fields">
            <summary>
            The fields to load from the data store.
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.Source">
            <summary>
            The source of the data. In a database query this would be the first table listed in the FROM clause.
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.OrderCriteria">
            <summary>
            The fields to use to order a collection of objects when loading them.
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.Limit">
            <summary>
            The number of objects to load
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.ClassDef">
            <summary>
            The classdef this select query corresponds to. This can be null if the select query is being used
            without classdefs, but if it is built using the QueryBuilder 
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.DiscriminatorCriteria">
            <summary>
            Gets or sets criteria for the discriminator that is used in single table
            inheritance
            </summary>
        </member>
        <member name="P:Habanero.BO.SelectQuery.FirstRecordToLoad">
            <summary>
             Gets and sets the first record to be loaded by the select query.
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipUtils.CreateRelatedBusinessObjectCollection(System.Type,Habanero.BO.IMultipleRelationship)">
            <summary>
            Creates a <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> with boType as its type parameter, using the Activator.
            </summary>
            <param name="boType">The type parameter to be used</param>
            <param name="relationship">The relationship that this <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> is the collection for</param>
            <returns>The instantiated <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/></returns>
        </member>
        <member name="M:Habanero.BO.RelationshipUtils.CreateRelatedBusinessObjectCollection(System.String,System.String,Habanero.BO.IMultipleRelationship)">
            <summary>
            Creates a <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> with boType as its type parameter, using the Activator.
            </summary>
            <param name="boClassName"></param>
            <param name="relationship">The relationship that this <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> is the collection for</param>
            <param name="boAssemblyName"></param>
            <returns>The instantiated <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/></returns>
        </member>
        <member name="M:Habanero.BO.RelationshipUtils.CreateNewRelatedBusinessObjectCollection(System.String,System.String,Habanero.Base.IRelationship)">
            <summary>
            Creates a <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> with boType as its type parameter, using the Activator.
            </summary>
            <param name="boClassName"></param>
            <param name="relationship">The relationship that this <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> is the collection for</param>
            <param name="boAssemblyName"></param>
            <returns>The instantiated <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/></returns>
        </member>
        <member name="M:Habanero.BO.RelationshipUtils.CreateNewRelatedBusinessObjectCollection(System.Type,Habanero.Base.IRelationship)">
            <summary>
            Creates a <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> with boType as its type parameter, using the Activator.
            </summary>
            <param name="boType">The type parameter to be used</param>
            <param name="relationship">The relationship that this <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/> is the collection for</param>
            <returns>The instantiated <see cref="T:Habanero.BO.RelatedBusinessObjectCollection`1"/></returns>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUIFormLoader">
            <summary>
            Loads UI form definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormLoader.LoadUIFormDef(System.String)">
            <summary>
            Loads a form definition from the xml string provided
            </summary>
            <param name="formDefElement">The xml string</param>
            <returns>Returns a UIFormDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormLoader.LoadUIFormDef(System.Xml.XmlElement)">
            <summary>
            Loads a form definition from the xml element provided
            </summary>
            <param name="formDefElement">The xml element</param>
            <returns>Returns a UIFormDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormLoader.Create">
            <summary>
            Creates a form definition from the data already loaded
            </summary>
            <returns>Returns a UIFormDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormLoader.LoadFromReader">
            <summary>
            Loads form definition data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.MultipleRelationshipDef">
            <summary>
            Defines a relationship where the owner may relate to more than one object.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.MultipleRelationshipDef.#ctor(System.String,System.Type,Habanero.Base.IRelKeyDef,System.Boolean,System.String,Habanero.Base.DeleteParentAction)">
            <summary>
            Constructor to create a new Multiple Relationship Definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectClassType">The class type of the related objects</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="orderBy">The sql order-by clause</param>
            <param name="deleteParentAction">Provides specific instructions 
            with regards to deleting a parent object.  See the DeleteParentAction 
            enumeration for more detail.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.MultipleRelationshipDef.#ctor(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,System.String,Habanero.Base.DeleteParentAction)">
            <summary>
            Constructor to create a new single relationship definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectAssemblyName">The assembly name of the related object</param>
            <param name="relatedObjectClassName">The class name of the related object</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="orderBy">The sql order-by clause</param>
            <param name="deleteParentAction">Provides specific instructions 
            with regards to deleting a parent object.  See the DeleteParentAction 
            enumeration for more detail.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.MultipleRelationshipDef.#ctor(System.String,System.String,System.String,Habanero.Base.IRelKeyDef,System.Boolean,System.String,Habanero.Base.DeleteParentAction,Habanero.Base.InsertParentAction,Habanero.Base.RelationshipType,System.Int32)">
            <summary>
            Constructor to create a new single relationship definition
            </summary>
            <param name="relationshipName">A name for the relationship</param>
            <param name="relatedObjectAssemblyName">The assembly name of the related object</param>
            <param name="relatedObjectClassName">The class name of the related object</param>
            <param name="relKeyDef">The related key definition</param>
            <param name="keepReferenceToRelatedObject">Whether to keep a
            reference to the related object.  Could be false for memory-
            intensive applications.</param>
            <param name="orderBy">The sql order-by clause</param>
            <param name="deleteParentAction">Provides specific instructions 
            with regards to deleting a parent object.  See the DeleteParentAction 
            enumeration for more detail.</param>
            <param name="insertParentAction"></param>
            <param name="relationshipType">Provides specific instructions for adding/removing a child object.</param>
            <param name="timeout">The timout in milliseconds. The collection will not be automatically refreshed from the DB if the timeout has nto expired</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.MultipleRelationshipDef.CreateRelationship(Habanero.Base.IBusinessObject,Habanero.Base.IBOPropCol)">
            <summary>
            Overrides abstract method of parent to facilitate creation of 
            a new Multiple Relationship
            </summary>
            <param name="owningBo">The business object that will manage
            this relationship</param>
            <param name="lBOPropCol">The collection of properties</param>
            <returns>Returns the new relationship that has been created</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.MultipleRelationshipDef.OwningBOHasForeignKey">
            <summary>
             Returns true where the owning business object has the foreign key for this relationship false otherwise.
             This is used to differentiate between the two sides of the relationship.
             For A Multiple Relatiosnhip this will always return false since the FK must be on the related Class.
            </summary>
        </member>
        <member name="T:Habanero.BO.DataAccessorInMemory">
            <summary>
             The data accessor used when using the in-memory data store.
            </summary>
        </member>
        <member name="F:Habanero.BO.DataAccessorInMemory._dataStore">
            <summary>
            The <see cref="P:Habanero.BO.DataAccessorInMemory.DataStoreInMemory"/> that is used by this data accessor.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataAccessorInMemory.#ctor">
            <summary>
             Creates a new in-memory data store.
            </summary>
        </member>
        <member name="M:Habanero.BO.DataAccessorInMemory.#ctor(Habanero.BO.DataStoreInMemory)">
            <summary>
             Alternate constructor for the in-memory data store where the DataStore to be used is passed in.
            </summary>
            <param name="dataStore">The Data Store to be used.</param>
        </member>
        <member name="M:Habanero.BO.DataAccessorInMemory.CreateTransactionCommitter">
            <summary>
            Creates a TransactionCommitter for you to use to persist BusinessObjects. A new TransactionCommitter is required
            each time an object or set of objects is persisted.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.DataAccessorInMemory.BusinessObjectLoader">
            <summary>
            The <see cref="P:Habanero.BO.IDataAccessor.BusinessObjectLoader"/> to use to load BusinessObjects.
            </summary>
        </member>
        <member name="P:Habanero.BO.DataAccessorInMemory.DataStoreInMemory">
            <summary>
             Returns the DataAccessorInMemory's internal data store.
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObjectLoaderInMemory">
            <summary>
             The business object loader in memory is a business object loader that can be used in place of a normal datastore loader.
             This is used to demonstrate the abilitiy to swap out loaders for different datastores and for testing so as to minimise.
             The continual database hits that result from testing using a traditional database.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.#ctor(Habanero.BO.DataStoreInMemory)">
            <summary>
             Constuctor for business object loaded in memory. This constructs the loader with the appropriate data store.
            </summary>
            <param name="dataStore"></param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject``1(Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of type T, using the Primary key given as the criteria
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.IPrimaryKey)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the Primary key given as the criteria
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="primaryKey">The primary key to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject``1(Habanero.Base.Criteria)">
            <summary>
            Loads a business object of type T, using the criteria given
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteria">The criteria to use to load the business object</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject``1(Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject(Habanero.Base.IClassDef,Habanero.Base.ISelectQuery)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, 
            using the SelectQuery given. It's important to make sure that the ClassDef parameter given
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="selectQuery">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject``1(System.String)">
            <summary>
            Loads a business object of type T, using the SelectQuery given. It's important to make sure that T (meaning the ClassDef set up for T)
            has the properties defined in the fields of the select query.  
            This method allows you to define a custom query to load a business object
            </summary>
            <typeparam name="T">The type of object to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="criteriaString">The select query to use to load from the data source</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an <see cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException"/> error is throw</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetBusinessObject(Habanero.Base.IClassDef,System.String)">
            <summary>
            Loads a business object of the type identified by a <see cref="T:Habanero.BO.ClassDefinition.ClassDef"/>, using the criteria given
            </summary>
            <param name="classDef">The ClassDef of the object to load.</param>
            <param name="criteriaString">The criteria to use to load the business object must be of formst "PropName = criteriaValue" e.g. "Surname = Powell"</param>
            <returns>The business object that was found. If none was found, null is returned. If more than one is found an error is raised</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.Refresh(Habanero.Base.IBusinessObject)">
            <summary>
            Reloads a businessObject from the datasource using the id of the object.
            A dirty object will not be refreshed from the database and the appropriate error will be raised.
            Cancel all edits before refreshing the object
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.HabaneroDeveloperException">Exception thrown if the object is dirty and refresh is called.</exception>
            <param name="businessObject">The businessObject to refresh</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetCount(Habanero.Base.IClassDef,Habanero.Base.Criteria)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.DoRefresh``1(Habanero.BO.BusinessObjectCollection{``0})">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <typeparam name="T">The type of collection to load. This must be a class that implements IBusinessObject and has a parameterless constructor</typeparam>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.DoRefresh(Habanero.Base.IBusinessObjectCollection)">
            <summary>
            Reloads a BusinessObjectCollection using the criteria it was originally loaded with.  You can also change the criteria or order
            it loads with by editing its SelectQuery object. The collection will be cleared as such and reloaded (although Added events will
            only fire for the new objects added to the collection, not for the ones that already existed).
            </summary>
            <param name="collection">The collection to refresh</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetRelatedBusinessObject``1(Habanero.BO.SingleRelationship{``0})">
            <summary>
            Loads a business object of type T using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <typeparam name="T">The type of the business object to load</typeparam>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of type T if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetRelatedBusinessObject(Habanero.BO.ISingleRelationship)">
            <summary>
            Loads a business object using the relationship given. The relationship will be converted into a
            Criteria object that defines the relationship and this will be used to load the related object.
            </summary>
            <param name="relationship">The relationship to use to load the object</param>
            <returns>An object of the type defined by the relationship if one was found, otherwise null</returns>
        </member>
        <member name="M:Habanero.BO.BusinessObjectLoaderInMemory.GetMemoryDatabase">
            <summary>
             Returns the In memory datastore that this Loader is using
            </summary>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.BOHelper">
            <summary>
             A helper class that allows access to internal or hidden details about an <see cref="T:Habanero.BO.BusinessObject"/>.
             This is currently only used in unit tests so that we can access the rule collection and verify that they are
             set up correctly for a particular business object without having to make the method public.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOHelper.GetBusinessObjectRules(Habanero.BO.BusinessObject)">
            <summary>
             Returns a read only collection of the rules that have been set up for the <see cref="T:Habanero.BO.BusinessObject"/>.
            </summary>
            <param name="businessObject">The <see cref="T:Habanero.BO.BusinessObject"/> for which the rules collection will be returned.</param>
            <returns>A read only collection of the rules for the specified <see cref="T:Habanero.BO.BusinessObject"/>.</returns>
        </member>
        <member name="T:Habanero.BO.TransactionalSingleRelationship">
            <summary>
            An <see cref="T:Habanero.Base.ITransactional"/> object for persisting a single relationship.
            This is used for single association relationships where the relationship has changed 
            and you wish the changed relationship to be persisted to the database.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship.#ctor(Habanero.Base.IRelationship,Habanero.Base.IBusinessObject)">
            <summary>
            Constructor for <see cref="T:Habanero.BO.TransactionalSingleRelationship"/>
            </summary>
            <param name="relationship"></param>
            <param name="relatedBO"></param>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship.TransactionID">
            <summary>
            </summary>
            <returns>The ID that uniquelty identifies this item of the transaction. In the case of business objects the object Id.
             for non business objects that no natural id exists for the particular transactional item a guid that uniquely identifies 
             transactional item should be generated. This is used by the transaction committer to ensure that the transactional item
             is not added twice in error.</returns>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship.UpdateStateAsCommitted">
            <summary>
             Updates the business object as committed
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship.UpdateCollections">
            <summary>
            Update the Underlying relationship collection e.g. The added or removed Business Object Collections are updated.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship.UpdateAsRolledBack">
            <summary>
             updates the object as rolled back
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionalSingleRelationship.Relationship">
            <summary>
            Returns the Relationship for this <see cref="T:Habanero.BO.TransactionalSingleRelationship"/>
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionalSingleRelationship.RelatedBO">
            <summary>
            The Related <see cref="T:Habanero.Base.IBusinessObject"/> for this <see cref="T:Habanero.BO.TransactionalSingleRelationship"/>
            </summary>
        </member>
        <member name="T:Habanero.BO.TransactionalSingleRelationship_Added">
            <summary>
            A <see cref="T:Habanero.BO.TransactionalSingleRelationship"/> for an item that is in the Added Business Object collection.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship_Added.#ctor(Habanero.Base.IRelationship,Habanero.Base.IBusinessObject)">
            <summary>
            constructor
            </summary>
            <param name="singleRelationship"></param>
            <param name="relatedBO"></param>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship_Added.UpdateCollections">
            <summary>
            Update the Underlying relationship collection e.g. The added or removed Business Object Collections are updated.
            </summary>
        </member>
        <member name="T:Habanero.BO.TransactionalSingleRelationship_Removed">
            <summary>
            A <see cref="T:Habanero.BO.TransactionalSingleRelationship"/> for an item that is in the Removed Business Object collection.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship_Removed.#ctor(Habanero.Base.IRelationship,Habanero.Base.IBusinessObject)">
            <summary>
            Constructor
            </summary>
            <param name="singleRelationship"></param>
            <param name="relatedBO"></param>
        </member>
        <member name="M:Habanero.BO.TransactionalSingleRelationship_Removed.UpdateCollections">
            <summary>
            Update the Underlying relationship collection e.g. The added or removed Business Object Collections are updated.
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.ClassDefsXmlValidator">
            <summary>
            Validates a classdefs xml string against the schema and returns an <see cref="T:Habanero.BO.Loaders.XmlValidationResult"/> which contains
            any validation errors.
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.ClassDefsXmlValidator.ValidateClassDefsXml(System.String)">
            <summary>
            Validates the xml string against the classdefs schema.  
            </summary>
            <param name="xml">The classdefs xml to validate</param>
            <returns>The result of the validation.  See <see cref="T:Habanero.BO.Loaders.XmlValidationResult"/>.</returns>
        </member>
        <member name="T:Habanero.BO.Comparer.DateTimeComparer`1">
            <summary>
            Compares two business objects on the date-time property specified 
            in the constructor
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.DateTimeComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the date-time property
            on which two business objects will be compared using the Compare()
            method
            </summary>
            <param name="propName">The integer property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.DateTimeComparer`1.Compare(`0,`0)">
            <summary>
            Compares two business objects on the date-time property specified in 
            the constructor
            </summary>
            <param name="x">The first object to compare</param>
            <param name="y">The second object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first date is less, equal to or more
            than the second</returns>
        </member>
        <member name="T:Habanero.BO.TransactionLogBusObj">
            <summary>
             Provides a BusinessObject to use the TransactionLog table.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionLogBusObj.LoadClassDef">
            <summary>
            Load ClassDef for accessing the transacionLog table through Business Object.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.CrudAction">
            <summary>
             Create read update or delete action. I.e. the action that was carried out for this business object.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.DirtyXMLLog">
            <summary>
             The dirty XML for the business object that this log record is for.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.BusinessObjectTypeName">
            <summary>
             The business object type this business object is.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.WindowsUser">
            <summary>
             The logged in windows user that this log is for.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.LogonUser">
            <summary>
             The logon user in cases where non windows authentication is used.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.MachineUpdatedName">
            <summary>
             The machine (actual PC name) that was used to make the update.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.DateTimeUpdated">
            <summary>
             The datetime that the update to the business object was made.
            </summary>
        </member>
        <member name="P:Habanero.BO.TransactionLogBusObj.BusinessObjectToString">
            <summary>
             The ToString value for the business object (usually set to be the alternate key).
            </summary>
        </member>
        <member name="T:Habanero.BO.TransactionalBusinessObjectInMemory">
            <summary>
             A class for that Inherits from <see cref="T:Habanero.BO.TransactionalBusinessObject"/> and implements specific behaviour
             for persisting this to In Memory Data Store.
            </summary>
        </member>
        <member name="M:Habanero.BO.TransactionalBusinessObjectInMemory.#ctor(Habanero.Base.IBusinessObject)">
            <summary>
            Constructor for <see cref="T:Habanero.BO.TransactionalBusinessObjectInMemory"/>
            </summary>
            <param name="businessObject"></param>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUILoader">
            <summary>
            Loads UI definitions from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUILoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUILoader.LoadUIDef(System.String)">
            <summary>
            Loads a UI definition from the xml string provided
            </summary>
            <param name="uiDefElement">The xml string</param>
            <returns>Returns the UI definition object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUILoader.LoadUIDef(System.Xml.XmlElement)">
            <summary>
            Loads a UI definition from the xml element provided
            </summary>
            <param name="uiDefElement">The xml element</param>
            <returns>Returns the UI definition object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUILoader.Create">
            <summary>
            Creates a UI definition from the data already loaded
            </summary>
            <returns>Returns a UIDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUILoader.LoadFromReader">
            <summary>
            Loads UI definition data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlBusinessObjectLookupListLoader">
            <summary>
            Loads xml data for a lookup list in a business object
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlBusinessObjectLookupListLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlBusinessObjectLookupListLoader.LoadLookupListFromReader">
            <summary>
            Loads the lookup list data from the reader
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlBusinessObjectLookupListLoader.Create">
            <summary>
            Creates a business object lookup list data source from the
            data already read in
            </summary>
            <returns>Returns a BusinessObjectLookupList object</returns>
        </member>
        <member name="T:Habanero.BO.Comparer.StringComparer`1">
            <summary>
            Compares two business objects on the string property specified 
            in the constructor
            </summary>
        </member>
        <member name="M:Habanero.BO.Comparer.StringComparer`1.#ctor(System.String)">
            <summary>
            Constructor to initialise a comparer, specifying the string property
            on which two business objects will be compared using the Compare()
            method
            </summary>
            <param name="propName">The string property name on which two
            business objects will be compared</param>
        </member>
        <member name="M:Habanero.BO.Comparer.StringComparer`1.Compare(`0,`0)">
            <summary>
            Compares two business objects on the string property specified in 
            the constructor
            </summary>
            <param name="x">The first object to compare</param>
            <param name="y">The second object to compare</param>
            <returns>Returns a negative number, zero or a positive number,
            depending on whether the first string is less, equal to or more
            than the second</returns>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropDateTimeDataMapper">
            <summary>
            Used to implement custom type conversions specifically for DateTime objects.
            </summary>
        </member>
        <member name="T:Habanero.BO.SimpleLookupList">
            <summary>
            A basic lookup-list content provider that stores a collection of
            string-Guid pairs as provided in the constructor.
            A lookup-list is typically used to populate features like a ComboBox,
            where the string would be displayed, but the Guid would be the
            value stored (for reasons of data integrity).
            </summary>
        </member>
        <member name="F:Habanero.BO.SimpleLookupList._displayValueDictionary">
            <summary>
            Provides a key value pair where the persisted value can be returned for 
              any displayed value. E.g. the persisted value may be a GUID but the
              displayed value may be a related string.
            </summary>
        </member>
        <member name="F:Habanero.BO.SimpleLookupList._keyValueDictionary">
            <summary>
            Provides a key value pair where the persisted value can be returned for 
              any displayed value. E.g. the persisted value may be a GUID but the
              displayed value may be a related string.
            </summary>
        </member>
        <member name="M:Habanero.BO.SimpleLookupList.#ctor(System.Collections.Generic.Dictionary{System.String,System.String})">
            <summary>
            Constructor to initialise the provider with a specified
            collection of string-Guid pairs
            </summary>
            <param name="collection">The string-Guid pair collection</param>
        </member>
        <member name="M:Habanero.BO.SimpleLookupList.#ctor(System.Collections.Generic.Dictionary{System.String,System.String},System.Boolean)">
            <summary>
            Constructor to initialise the provider with a specified
            collection of string-Guid pairs
            </summary>
            <param name="collection">The string-Guid pair collection</param>
            <param name="limitToList">Whether to limit the items to those in the lookup list</param>
        </member>
        <member name="M:Habanero.BO.SimpleLookupList.GetLookupList">
            <summary>
            Returns the lookup list contents being held
            </summary>
            <returns>Returns a collection of display-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.SimpleLookupList.GetLookupList(Habanero.Base.IDatabaseConnection)">
            <summary>
            Returns the lookup list contents being held where the list is keyed on the display value and
              the key value can be looked up.
            </summary>
            <param name="connection">Ignored for this lookup list type.</param>
            <returns>Returns a collection of display-value pairs</returns>
        </member>
        <member name="M:Habanero.BO.SimpleLookupList.GetIDValueLookupList">
             <summary>
             Returns the lookup list contents being held where the list is keyed on the list key 
              either a Guid, int or Business object i.e. the value being stored for the property.
             The display value can be looked up.
             </summary>
            <returns>The Key Value Lookup List</returns>
        </member>
        <member name="P:Habanero.BO.SimpleLookupList.PropDef">
            <summary>
             The property definition that this lookup list is for
            </summary>
        </member>
        <member name="P:Habanero.BO.SimpleLookupList.LimitToList">
            <summary>
             Whether to validate that the property set is in this list.  Eg, if the BOProp's value is set to an
             item not in the list and this value is True, a validation error will occur upon save.  If this 
             value is set to false no validation will occur.
            </summary>
        </member>
        <member name="P:Habanero.BO.SimpleLookupList.TimeOut">
            <summary>
            The TimeOut the time in Milliseconds before the cache expires. I.e. if the current time + Timeout is
            less than now then the lookup list will be reloaded else the currently loaded lookup list will be used. 
            </summary>
        </member>
        <member name="T:Habanero.BO.RelationshipObjectInitialiser">
            <summary>
            Initialises a relationship object
            </summary>
        </member>
        <member name="M:Habanero.BO.RelationshipObjectInitialiser.#ctor(Habanero.Base.IBusinessObject,Habanero.BO.ClassDefinition.RelationshipDef,System.String)">
            <summary>
            Constructor for a new initialiser
            </summary>
            <param name="parentObject">The parent for the relationship</param>
            <param name="relationship">The relationship object</param>
            <param name="correspondingRelationshipName">The corresponding
            relationship name</param>
        </member>
        <member name="M:Habanero.BO.RelationshipObjectInitialiser.InitialiseObject(Habanero.Base.IBusinessObject)">
            <summary>
            Initialises the given object
            </summary>
            <param name="objToInitialise">The object to initialise</param>
        </member>
        <member name="M:Habanero.BO.RelationshipObjectInitialiser.InitialiseDataRow(System.Data.DataRow)">
            <summary>
            Initialises a DataRow object
            </summary>
            <param name="row">The DataRow object to initialise</param>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlSuperClassLoader">
            <summary>
            Loads super class information from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSuperClassLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSuperClassLoader.LoadSuperClassDesc(System.String)">
            <summary>
            Loads super class information from the given xml string
            </summary>
            <param name="xmlSuperClassDesc">The xml string containing the
            super class definition</param>
            <returns>Returns the property rule object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSuperClassLoader.LoadSuperClassDesc(System.Xml.XmlElement)">
            <summary>
            Loads super class information from the given xml element
            </summary>
            <param name="xmlSuperClassDesc">The xml element containing the
            super class definition</param>
            <returns>Returns the property rule object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSuperClassLoader.Create">
            <summary>
            Creates a new SuperClassDef object using the data that
            has been loaded for the object
            </summary>
            <returns>Returns a SuperClassDef object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlSuperClassLoader.LoadFromReader">
            <summary>
            Load the class data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.RelationshipDefCol">
            <summary>
            Manages a collection of relationship definitions
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.#ctor">
            <summary>
            A constructor to create a new empty collection
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.Add(Habanero.Base.IRelationshipDef)">
            <summary>
            Add an existing relationship to the collection
            </summary>
            <param name="relationshipDef">The existing relationship to add</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.Remove(Habanero.Base.IRelationshipDef)">
            <summary>
            Removes a relationship definition from the collection
            </summary>
            <param name="relationshipDef">The Relationship definition to remove</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.Contains(Habanero.Base.IRelationshipDef)">
            <summary>
            Indicates whether the collection contains the relationship
            definition specified
            </summary>
            <param name="relationshipDef">The Relationship definition to search for</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.Contains(System.String)">
            <summary>
            Indicates whether the collection contains the relationship
            definition specified
            </summary>
            <param name="keyName">The name of the definition</param>
            <returns>Returns true if found, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.CreateRelationshipCol(Habanero.Base.IBOPropCol,Habanero.Base.IBusinessObject)">
            <summary>
            Create a new collection of relationships
            </summary>
            <param name="lBoPropCol">The collection of properties</param>
            <param name="bo">The business object that will manage these
            relationships</param>
            <returns>Returns the new collection created</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            
            <returns>
            A <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <filterpriority>1</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.RelationshipDefCol.System#Collections#IEnumerable#GetEnumerator">
            <summary>
            Returns an enumerator that iterates through a collection.
            </summary>
            
            <returns>
            An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDefCol.Item(System.String)">
            <summary>
            Provides an indexing facility for the collection so that items
            in the collection can be accessed like an array 
            (e.g. collection["marriage"])
            </summary>
            <param name="relationshipName">The name of the relationship to
            access</param>
            <returns>Returns the relationship definition that matches the
            name provided</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDefCol.Count">
            <summary>
            Gets the count of items in this collection
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.RelationshipDefCol.ClassDef">
            <summary>
            The ClassDef this RelationshipDefCol belongs to
            </summary>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.PropDef">
            <summary>
            A PropDef contains a Business Object property definition, with
            the property name and information such as the 
            access rules for the property (i.e. write-once, read-many or 
            read-many-write-many).
            Stores the <see cref="T:Habanero.Base.IPropRule"/>s for the Property Definition.
            Contains functionality to determine whether a value is valid based on the 
            Property rules.
            </summary>
            <futureEnhancements>
            TODO_Future:
            <ul>
            <li>Add ability to store calculated properties.</li>
            <li>Lazy initialisation of properties.</li>
            <li>Property definitions that reference properties from related Business objects 
                e.g. An Invoice Line has a property definition that references InvoiceDate through its
                relationship Invoice.</li>
            </ul>
            </futureEnhancements>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.String,System.Object)">
            <summary>
            This constructor is used to create a propdef using it's property type and other information. 
            </summary>
            <param name="propertyName" >The name of the property (e.g. "surname")</param>
            <param name="propType">The type of the property (e.g. string)</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.Object)">
            <summary>
            This constructor is used to create a propdef using it's property type and other information. 
            The database field name is presumed to be the same as the property name.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="propType">The type of the property (e.g. string)</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.String,System.String,Habanero.Base.PropReadWriteRule,System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="assemblyName">The assembly name of the property type</param>
            <param name="typeName">The type name of the property type (e.g. "string")</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValueString">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.String,System.String,Habanero.Base.PropReadWriteRule,System.String,System.String,System.Boolean,System.Boolean,System.Int32)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="assemblyName">The assembly name of the property type</param>
            <param name="typeName">The type name of the property type (e.g. "string")</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValueString">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
            <param name="length">The maximum length for a string</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.String,System.String,Habanero.Base.PropReadWriteRule,System.String,System.String,System.Boolean,System.Boolean,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="assemblyName">The assembly name of the property type</param>
            <param name="typeName">The type name of the property type (e.g. "string")</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValueString">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
            <param name="length">The maximum length for a string</param>
            <param name="displayName">The display name for the property</param>
            <param name="description">The description of the property</param>
            <param name="keepValuePrivate">Whether this property must keep its value private or not</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.String,System.Object,System.Boolean,System.Boolean,System.Int32,System.String,System.String)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="propType">The type of the property (e.g. string)</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
            <param name="length">The maximum length for a string</param>
            <param name="displayName">The display name for the property</param>
            <param name="description">The description of the property</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.String,System.Object,System.Boolean,System.Boolean)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="propType">The type of the property (e.g. string)</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.#ctor(System.String,System.Type,Habanero.Base.PropReadWriteRule,System.String,System.Object,System.Boolean,System.Boolean,System.Int32,System.String,System.String,System.Boolean)">
            <summary>
            This constructor is used to create a propdef using property type assembly and class name and other information. 
            The default value and the property type are loaded when they are needed.
            </summary>
            <param name="propertyName">The name of the property (e.g. "surname")</param>
            <param name="propType">The type of the property (e.g. string)</param>
            <param name="propRWStatus">Rules for how a property can be accessed.
            See PropReadWriteRule enumeration for more detail.</param>
            <param name="databaseFieldName">The database field name - this
            allows you to have a database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up.</param>
            <param name="defaultValue">The default value that a property 
            of a new object will be set to</param>
            <param name="compulsory">Whether this property is a required field or not.</param>
            <param name="autoIncrementing">Whether this is an auto-incrementing field in the database</param>
            <param name="length">The maximum length for a string</param>
            <param name="displayName">The display name for the property</param>
            <param name="description">The description of the property</param>
            <param name="keepValuePrivate">Whether this property must keep its value private or not</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.HasLookupList">
            <summary>
            Indicates whether this object has a LookupList object set
            </summary>
            <returns>Returns true if so, or false if the local
            LookupList equates to NullLookupList</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.IsValueValid(System.Object,System.String@)">
            <summary>
            Tests whether a specified property value is valid against the current
            property rule.  A boolean is returned and an error message,
            where appropriate, is stored in a referenced parameter.
            </summary>
            <param name="propValue">The property value to be tested in the user interface, clarifies error messaging</param>
            <param name="errorMessage">A string which may be amended to reflect
            an error message if the value is not valid</param>
            <returns>Returns true if valid, false if not</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.IsLookupListItemValid(System.Object,System.String@)">
            <summary>
            Is lookup list item with a value of propValue valid if not outs Error message
            </summary>
            <param name="propValue"></param>
            <param name="errorMessage"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.CheckBusinessObjectMeetsLookupListCriteria(System.Object,Habanero.Base.IBusinessObject,Habanero.BO.BusinessObjectLookupList,System.String@)">
            <summary>
            Checks whether the particular buisness object set to a property for this PropDef
            meets the criteria for the <see cref="T:Habanero.BO.BusinessObjectLookupList"/>.
            </summary>
            <param name="propValue"></param>
            <param name="businessObject">The Business object that is being checked to see if it matches the criteria</param>
            <param name="list">The <see cref="T:Habanero.BO.BusinessObjectLookupList"/> that the bo is being compared to</param>
            <param name="errorMessage">An error message if the businessObject does not match the criteria</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.CreateBOProp(System.Boolean)">
            <summary>
            Creates a new Business Object property (BOProp)
            </summary>
            <param name="assignDefaultValue">Whether the Business Object this
            property is being created for is a new object or is being 
            loaded from the DB. If it is new, then the property is
            initialised with the default value.
            </param>
            <returns>The newly created BO property</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.GetPropertyComparer``1">
            <summary>
            Returns an appropriate IComparer object depending on the
            property type.  Can be used, for example, to provide to the
            ArrayList.Sort() function in order to determine how to compare
            items.  Caters for the following types: String, Int, Guid,
            DateTime, Single, Double, TimeSpan 
            and anything else that supports IComparable.
            </summary>
            <returns>Returns an IComparer object, or null if the property
            type is not one of those mentioned above</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.AddPropRule(Habanero.Base.IPropRule)">
            <summary>
             Adds an <see cref="T:Habanero.Base.IPropRule"/> to the <see cref="P:Habanero.BO.ClassDefinition.PropDef.PropRules"/> for the 
             Property Definiton.
            </summary>
            <param name="rule">The new rules to be added for the Property Definition.</param>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.Clone">
            <summary>
             Makes a shallow clone of this property definition (i.e. the clone includes a list of all the
              property rules but the property rules have not been cloned
            </summary>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
            
            <returns>
            true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
            
            <param name="obj">The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />. </param>
            <exception cref="T:System.NullReferenceException">The <paramref name="obj" /> parameter is null.</exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.Equals(Habanero.BO.ClassDefinition.PropDef)">
            <summary>
             Returns true if the PropDef obj is equal to this propDef
            </summary>
            <param name="obj">The PropDef to be compared to</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.GetHashCode">
            <summary>
            Serves as a hash function for a particular type. 
            </summary>
            
            <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            
            This method provides a the functionality to convert any object to the appropriate
              type for the particular BOProp Type. e.g it will convert a valid guid string to 
              a valid Guid Object.
            </summary>
            <param name="valueToParse">The value to be converted</param>
            <param name="returnValue"></param>
            <returns>An object of the correct type.</returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.PropDef.ConvertValueToString(System.Object)">
            <summary>
            Converts the value of a valid type for this property definition to a string relevant.
            A null value will be oonverted to a zero length string.
            </summary>
            <param name="value">The value to be converted</param>
            <returns>The converted string.</returns>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropertyName">
            <summary>
            The name of the property, e.g. surname
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.DisplayName">
            <summary>
             The display name for the property.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.Description">
            <summary>
             The description of the property.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropertyTypeAssemblyName">
            <summary>
            The name of the property type assembly
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropertyTypeName">
            <summary>
            The name of the property type
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropertyType">
            <summary>
            The type of the property, e.g. string
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropRules">
            <summary>
            Returns a List of PropRules <see cref="T:Habanero.Base.IPropRule"/> for the Property Definition.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.DatabaseFieldName">
            <summary>
            The database field name - this allows you to have a 
            database field name that is different to the
            property name, which is useful for migrating systems where
            the database has already been set up
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.DefaultValue">
            <summary>
            The default value that a property of a new object will be set to
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.DefaultValueString">
            <summary>
            The default value that a property of a new object will be set to
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.Compulsory">
            <summary>
             Is this property compulsary or not
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.LookupList">
            <summary>
            Provides access to read and write the ILookupList object
            in this definition
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.ReadWriteRule">
            <summary>
            Returns the rule for how the property can be accessed. 
            See the PropReadWriteRule enumeration for more detail.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.AutoIncrementing">
            <summary>
            Indicates whether this property is auto-incrementing (from the database)
            In this case when the BusinessObject is inserted the field will be filled
            from the database field.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.Length">
            <summary>
            Returns the maximum length for a string property
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.KeepValuePrivate">
            <summary>
             Returns whether this property should keep its value private where possible.
             This will usually be set to 'true' for password fields. This will then prevent
             the value being revealed in error messages and by default controls the user interface.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.ClassDef">
            <summary>
             Gets and sets the class def that this propDef is part of.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.PropType">
            <summary>
            Returns the type of the property
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.Persistable">
            <summary>
             Is this property persistable or not. This is used for special properties e.g. Dynamically inserted properties
             as for Asset Management System (See Intermap Asset Management) or for any reflective/calculated field that 
             you would like to store propdef information for e.g. rules, Units of measure etc.
             This will prevent the property from being persisted in the usual manner.
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.UnitOfMeasure">
            <summary>
             The unit of measure that this property is recorded in. e.g. Weight might be recorded in Kg. Capacity in Litre, m^3 etc
            </summary>
        </member>
        <member name="P:Habanero.BO.ClassDefinition.PropDef.DisplayNameFull">
            <summary>
             Returns the full display name for a property definition.
             If there is a unit of measure then it is appended to the display name in brackets e.g. DisplayName (UOM).
             If there is no display name then it will return the PascalCase Delimited property Name i.e. Display Name.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "P:Habanero.BO.ClassDefinition.PropDef.ClassName" -->
        <member name="T:Habanero.BO.PropRuleDouble">
            <summary>
            Checks Double values against property rules that test for validity
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDouble.#ctor(System.String,System.String)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDouble.#ctor(System.String,System.String,System.Double,System.Double)">
            <summary>
            Constructor to initialise a new rule
            </summary>
            <param name="ruleName">The rule name</param>
            <param name="message">The rule failure message</param>
            <param name="minValue">The minimum value allowed for the Double</param>
            <param name="maxValue">The maximum value allowed for the Double</param>
        </member>
        <member name="M:Habanero.BO.PropRuleDouble.SetupParameters">
            <summary>
            Sets up the parameters to the rule, that is the individual pairs
            of rule type and rule value that make up the composite rule
            </summary>
        </member>
        <member name="M:Habanero.BO.PropRuleDouble.IsPropValueValid(System.String,System.Object,System.String@)">
            <summary>
            Indicates whether the property value is valid against the rules
            </summary>
            <param name="displayName">The property name being checked</param>
            <param name="propValue">The value to check</param>
            <param name="errorMessage">A string to amend with an error
            message indicating why the value might have been invalid</param>
            <returns>Returns true if valid</returns>
        </member>
        <member name="P:Habanero.BO.PropRuleDouble.MinValue">
            <summary>
            Gets and sets the minimum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleDouble.MaxValue">
            <summary>
            Gets and sets the maximum value that the Double can be assigned
            </summary>
        </member>
        <member name="P:Habanero.BO.PropRuleDouble.AvailableParameters">
            <summary>
            Returns the list of available parameter names for the rule.
            </summary>
            <returns>A list of the parameters that this rule uses</returns>
        </member>
        <member name="T:Habanero.BO.IBusinessObjectCollectionLoader">
            <summary>
            An interface that models the ability to load a business object
            collection
            </summary>
        </member>
        <member name="M:Habanero.BO.IBusinessObjectCollectionLoader.Load">
            <summary>
            Loads a business object collection
            </summary>
            <returns>Returns the collection loaded</returns>
        </member>
        <member name="T:Habanero.BO.ConstructForFakes">
            <summary>
             An Enum used for Constructing fake Business objects.
             This is used for Testing using a Mocking Framework such as 
             Rhino Mocks. In this scenario no ClassDefs are created for the BO.
             This enum is created so as to make the Constructor more self documenting when called.
            </summary>
        </member>
        <member name="F:Habanero.BO.ConstructForFakes.True">
            <summary>
             This object must be constructed as a Fake BO i.e. no ClassDefs
            </summary>
        </member>
        <member name="T:Habanero.BO.DeleteHelper">
            <summary>
            A helper class that encapsulates the deleting checking for a specified business object.
            This class finds all the relationships that are marked as prevent delete for this business object
            and any of its children business object. It then checks if there are any children that are marked as 
            prevent delete. If there are any business objects in these relationships that are not marked as deleted
            then the <see cref="M:Habanero.BO.DeleteHelper.CheckCanDelete(Habanero.Base.IBusinessObject,System.String@)"/> method will return false.
            </summary>
        </member>
        <member name="M:Habanero.BO.DeleteHelper.CheckCanDelete(Habanero.Base.IBusinessObject,System.String@)">
            <summary>
            Checks if the business object <see cref="T:Habanero.Base.IBusinessObject"/> can be deleted.
            If the object can be deleted then returns true else returns false with 
            a list of reasons that the object cannot be deleted.
            </summary>
            <param name="bo">The Business object to check for deletion</param>
            <param name="reason">The reasons that the object cannot be deleted</param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DeleteHelper.FindPreventDeleteRelationships(Habanero.Base.IRelationshipDefCol)">
            <summary>
            Returns a list of all relationships that are marked as prevent deletion.
            </summary>
            <param name="relationshipDefCol"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.DeleteHelper.FindRelationships``1(Habanero.Base.IRelationshipDefCol,Habanero.BO.DeleteHelper.MatchesConditionDelegate{``0})">
            <summary>
            Returns a list of all relationships that match the Delegate relationship.
            </summary>
            <typeparam name="TRelationshipDef"></typeparam>
            <param name="relationshipDefCol"></param>
            <param name="matchesConditionDelegate"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.MatchList">
            <summary>
            A Dictionary of all the items that match the list
            </summary>
        </member>
        <member name="M:Habanero.BO.MatchList.ToString">
            <summary>
            Returns a <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </summary>
            <returns>
            A <see cref="T:System.String"></see> that represents the current <see cref="T:System.Object"></see>.
            </returns>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Habanero.BO.ClassDefinition.BOPropGuidDataMapper">
            <summary>
             Implements a data mapper for a Guid Property
             The property data mapper conforms to the GOF strategy pattern <seealso cref="T:Habanero.BO.ClassDefinition.BOPropDataMapper"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropGuidDataMapper.ConvertValueToString(System.Object)">
            <summary>
            This mapper method will convert any valid guid object to an 
              Invariant Guid string of format .ToString("B").ToUpperInvariant().
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Habanero.BO.ClassDefinition.BOPropGuidDataMapper.TryParsePropValue(System.Object,System.Object@)">
            <summary>
            This mapper method will convert any valid Guid string to a valid Guid object 
              (ParsePropValue) and will convert a DBNull to a null value to null.
            </summary>
            <param name="valueToParse">value to convert.</param>
            <param name="returnValue"></param>
            <returns></returns>
        </member>
        <member name="T:Habanero.BO.ReflectionPropertyMapper">
            <summary>
            This is a mapper class that handles the mapping of a property name 
            to a specific property for a specified <see cref="T:Habanero.Base.IBusinessObject"/>.
            The property name can be specified as a path through single relationships on the <see cref="T:Habanero.Base.IBusinessObject"/>
            and its' relationship tree.
            <remarks>For Example:<br/>
            For the ContactPerson BusinessObject when the propertyName is "FirstName",
             the returned <see cref="T:Habanero.Base.IBOProp"/> will be the "FirstName" property on ContactPerson.<br/>
            If the propertyName was "Organisation.Name" then the Organisation relationship on the contact person will 
            be traversed and monitored and return the corresponding "Name" <see cref="T:Habanero.Base.IBOProp"/> for the ContactPerson's current Organisation.</remarks>
            </summary>
        </member>
        <member name="M:Habanero.BO.ReflectionPropertyMapper.#ctor(System.String)">
            <summary>
             Creates a BOPropertyMapper for the specified property name/path.
            </summary>
            <param name="propertyName">The name of the property to be mapped (this could also be in the form of a path through single relationships on the BO).</param>
            <exception cref="T:System.ArgumentNullException">This is thrown if <paramref name="propertyName"/> is null or empty.</exception>
        </member>
        <member name="M:Habanero.BO.ReflectionPropertyMapper.SetPropertyValue(System.Object)">
            <summary>
            Sets the BOProp that this mapper is mapped to the associated propValue
            </summary>
            <param name="propValue"></param>
        </member>
        <member name="M:Habanero.BO.ReflectionPropertyMapper.GetPropertyValue">
            <summary>
            Return the Property Value for the Property being mapped.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Habanero.BO.ReflectionPropertyMapper.PropertyName">
            <summary>
             The name of the property to be mapped. 
            </summary>
        </member>
        <member name="P:Habanero.BO.ReflectionPropertyMapper.BusinessObject">
            <summary>
             The BusinessObject for which the Property is being mapped.
             Once this property has been set, the <see cref="T:Habanero.BO.ReflectionPropertyMapper"/>'s PropertyInfo will be set.
            </summary>
            <exception cref="T:Habanero.Base.Exceptions.InvalidPropertyException">This is thrown if the specified property does not exist on the <see cref="T:Habanero.Base.IBusinessObject"/> being set or if one of the Relationships within the Property Path is not a single relationship.</exception>
        </member>
        <member name="P:Habanero.BO.ReflectionPropertyMapper.InvalidReason">
            <summary>
            If the Property is invalid then returns the Invalid reason.
            </summary>
        </member>
        <member name="T:Habanero.BO.ObjectFactory">
            <summary>
            A factory to create objects
            </summary>
        </member>
        <member name="M:Habanero.BO.ObjectFactory.#ctor">
            <summary>
            Constructor to initialise a new factory
            </summary>
        </member>
        <member name="M:Habanero.BO.ObjectFactory.GetObjectFactory">
            <summary>
            Returns the object factory stored in this instance
            </summary>
            <returns>Returns an ObjectFactory object</returns>
        </member>
        <member name="T:Habanero.BO.Loaders.XmlUIFormTabLoader">
            <summary>
            Loads UI form tab information from xml data
            </summary>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormTabLoader.#ctor(Habanero.BO.Loaders.DtdLoader,Habanero.BO.ClassDefinition.IDefClassFactory)">
            <summary>
            Constructor to initialise a new loader with a dtd path
            </summary>
            <param name="dtdLoader">The dtd loader</param>
            <param name="defClassFactory">The factory for the definition classes</param>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormTabLoader.LoadUIFormTab(System.String)">
            <summary>
            Loads a form tab definition from the xml string provided
            </summary>
            <param name="formTabElement">The xml string</param>
            <returns>Returns a UIFormTab object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormTabLoader.LoadUIFormTab(System.Xml.XmlElement)">
            <summary>
            Loads a form tab definition from the xml element provided
            </summary>
            <param name="formTabElement">The xml element</param>
            <returns>Returns a UIFormTab object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormTabLoader.Create">
            <summary>
            Creates a form tab definition from the data already loaded
            </summary>
            <returns>Returns a UIFormTab object</returns>
        </member>
        <member name="M:Habanero.BO.Loaders.XmlUIFormTabLoader.LoadFromReader">
            <summary>
            Loads form tab data from the reader
            </summary>
        </member>
        <member name="T:Habanero.BO.Loaders.Dtds">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds._class">
             <summary>
               Looks up a localized string similar to #include key.dtd
            #include primaryKey.dtd
            #include property.dtd
            #include relationship.dtd
            #include superClass.dtd
            #include ui.dtd
            &lt;!ELEMENT class (superClass?, property*, key*, primaryKey?, relationship*, ui*)&gt;
            &lt;!ATTLIST class
            		name NMTOKEN #REQUIRED
            		assembly NMTOKEN #REQUIRED
            		table CDATA #IMPLIED
            		displayName CDATA #IMPLIED
                typeParameter CDATA #IMPLIED
                moduleName CDATA #IMPLIED
              classID CDATA #IMPLIED
            &gt;
            
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.businessObjectLookupList">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT businessObjectLookupList EMPTY&gt;
            &lt;!ATTLIST businessObjectLookupList 
            	class NMTOKEN #REQUIRED
            	assembly NMTOKEN #REQUIRED
              criteria CDATA #IMPLIED
              sort CDATA #IMPLIED
              timeout CDATA &quot;10000&quot;
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.classes">
             <summary>
               Looks up a localized string similar to #include class.dtd
            &lt;!ELEMENT classes (class+)&gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.column">
             <summary>
               Looks up a localized string similar to #include parameter.dtd
            &lt;!ELEMENT column (parameter*)&gt;
            &lt;!ATTLIST column
            	heading CDATA #IMPLIED
            	property CDATA #REQUIRED
            	type NMTOKEN	#IMPLIED
            	assembly NMTOKEN #IMPLIED
            	editable ( true | false ) &quot;true&quot;
            	width CDATA &quot;100&quot;
            	alignment ( left | right | center | centre ) &quot;left&quot;
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.columnLayout">
             <summary>
               Looks up a localized string similar to #include field.dtd
            &lt;!ELEMENT columnLayout (field+)&gt;
            &lt;!ATTLIST columnLayout
            	width CDATA &quot;-1&quot;
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.databaseLookupList">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT databaseLookupList EMPTY&gt;
            &lt;!ATTLIST databaseLookupList
            	sql CDATA #REQUIRED
              timeout CDATA &quot;10000&quot;
            	class NMTOKEN #IMPLIED
            	assembly NMTOKEN #IMPLIED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.field">
             <summary>
               Looks up a localized string similar to #include parameter.dtd
            #include trigger.dtd
            &lt;!ELEMENT field (parameter*, trigger*)&gt;
            &lt;!ATTLIST field
            	label CDATA #IMPLIED
            	property NMTOKEN #REQUIRED
            	type CDATA #IMPLIED
            	assembly CDATA #IMPLIED
            	mapperType NMTOKEN #IMPLIED
              mapperAssembly CDATA #IMPLIED
              editable ( true | false ) &quot;true&quot;
            	toolTipText CDATA #IMPLIED
              layout (Label | GroupBox) &quot;Label&quot;
              showAsCompulsory (true | false) &quot;false&quot;
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.filter">
             <summary>
               Looks up a localized string similar to #include parameter.dtd
            &lt;!ELEMENT filterProperty (parameter*)&gt;
            &lt;!ATTLIST filterProperty 
            	name NMTOKEN #IMPLIED
            	label CDATA #IMPLIED
              filterType NMTOKEN &quot;StringTextBoxFilter&quot;
              filterTypeAssembly CDATA &quot;Habanero.Faces.Base&quot;
              operator ( OpEquals | OpLike | OpGreaterThan | OpGreaterThanOrEqualTo | OpLessThan | OpLessThanOrEqualTo ) &quot;OpLike&quot;
            &gt;
            &lt;!ELEMENT filter (filterProperty+)&gt;
            &lt;!ATTLIST filter 
            	filterMode NMTOKEN &quot;Filter&quot;
              columns CDATA &quot;0&quot;
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.form">
             <summary>
               Looks up a localized string similar to #include tab.dtd
            #include columnLayout.dtd
            #include field.dtd
            &lt;!ELEMENT form (tab*, columnLayout*, field*)&gt;
            &lt;!ATTLIST form
            	width CDATA &quot;300&quot;
            	height CDATA &quot;250&quot;
            	title CDATA &quot;&quot;
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.formGrid">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT formGrid EMPTY&gt;
            &lt;!ATTLIST formGrid
            	relationship NMTOKEN #REQUIRED
            	reverseRelationship NMTOKEN #REQUIRED
                type NMTOKEN &quot;Habanero.UI.Win.EditableGridWin&quot;
            	assembly NMTOKEN &quot;Habanero.UI.Win&quot;
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.grid">
             <summary>
               Looks up a localized string similar to #include column.dtd
            #include filter.dtd
            &lt;!ELEMENT grid (filter?, column+)&gt;
            &lt;!ATTLIST grid
            	sortColumn CDATA &quot;&quot;
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.key">
             <summary>
               Looks up a localized string similar to #include Prop.dtd
            &lt;!ELEMENT key (prop+)&gt;
            &lt;!ATTLIST key 
            	name CDATA #IMPLIED
            	ignoreIfNull ( true | false ) &quot;false&quot;
              message CDATA #IMPLIED
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.parameter">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT parameter EMPTY&gt;
            &lt;!ATTLIST parameter
            	name NMTOKEN #REQUIRED
            	value CDATA #REQUIRED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.primaryKey">
             <summary>
               Looks up a localized string similar to #include Prop.dtd
            &lt;!ELEMENT primaryKey (prop+)&gt;
            &lt;!ATTLIST primaryKey 
            	isObjectID ( true | false ) &quot;true&quot;
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.Prop">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT prop EMPTY&gt;
            &lt;!ATTLIST prop
            	name NMTOKEN #REQUIRED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.property">
             <summary>
               Looks up a localized string similar to #include rule.dtd
            #include databaseLookupList.dtd
            #include simpleLookupList.dtd
            #include businessObjectLookupList.dtd
            &lt;!ELEMENT property (rule*, databaseLookupList*, simpleLookupList*, businessObjectLookupList*)&gt;
            &lt;!ATTLIST property
            	name NMTOKEN #REQUIRED
            	displayName CDATA #IMPLIED
            	type CDATA &quot;String&quot;
            	assembly NMTOKEN &quot;System&quot;
            	readWriteRule (	ReadWrite | ReadOnly | WriteOnce | WriteNotNew | WriteNew ) &quot;ReadWrite&quot;
            	databaseField CDATA #IMPLIED
            	default CDATA #IMPLIED
            	description CDATA #IMPL [rest of string was truncated]&quot;;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.relationship">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT relationship (relatedProperty+)&gt;
            &lt;!ATTLIST relationship
            	name NMTOKEN #REQUIRED
            	type (single | multiple) #REQUIRED
              relationshipType ( Association | Aggregation | Composition ) &quot;Association&quot;
              owningBOHasForeignKey ( true | false ) &quot;true&quot;
            	relatedClass NMTOKEN #REQUIRED
            	relatedAssembly	NMTOKEN #REQUIRED
            	keepReference ( true | false ) &quot;true&quot;
              reverseRelationship NMTOKEN #IMPLIED
            	orderBy CDATA &quot;&quot;
            	deleteAction ( DeleteRelated | DereferenceRelated | Prevent | DoNothing ) &quot;Prevent&quot;
            	 [rest of string was truncated]&quot;;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.Rule">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT add EMPTY&gt;
            &lt;!ATTLIST add
            	key NMTOKEN #REQUIRED
              value CDATA #REQUIRED
            &gt;
            &lt;!ELEMENT rule (add*)&gt;
            &lt;!ATTLIST rule
            	name CDATA #REQUIRED
            	class CDATA #IMPLIED
              assembly CDATA #IMPLIED
              message CDATA #IMPLIED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.simpleLookupList">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT simpleLookupList (item*)&gt;
            &lt;!ATTLIST simpleLookupList
              options CDATA #IMPLIED
              &gt;
            &lt;!ELEMENT item EMPTY&gt;
            &lt;!ATTLIST item
            	display CDATA #REQUIRED
            	value   CDATA #REQUIRED
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.superClass">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT superClass EMPTY&gt;
            &lt;!ATTLIST superClass
            		class NMTOKEN #REQUIRED
            		assembly NMTOKEN #REQUIRED
            		orMapping ( ClassTableInheritance | SingleTableInheritance | ConcreteTableInheritance ) &quot;ClassTableInheritance&quot;
                id CDATA #IMPLIED
                discriminator CDATA #IMPLIED
                typeParameter NMTOKEN #IMPLIED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.tab">
             <summary>
               Looks up a localized string similar to #include columnLayout.dtd
            #include formGrid.dtd
            #include field.dtd
            &lt;!ELEMENT tab (columnLayout*, field*, formGrid?)&gt;
            &lt;!ATTLIST tab
            	name CDATA #REQUIRED
            &gt;
            .
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.trigger">
             <summary>
               Looks up a localized string similar to &lt;!ELEMENT trigger EMPTY&gt;
            &lt;!ATTLIST trigger
            	triggeredBy NMTOKEN #IMPLIED
            	conditionValue CDATA #IMPLIED
            	action NMTOKEN #REQUIRED
            	value CDATA #IMPLIED
              target NMTOKEN #IMPLIED
            &gt;.
             </summary>
        </member>
        <member name="P:Habanero.BO.Loaders.Dtds.ui">
             <summary>
               Looks up a localized string similar to #include grid.dtd
            #include form.dtd
            &lt;!ELEMENT ui (grid?, form?)&gt;
            &lt;!ATTLIST ui
            	name NMTOKEN &quot;default&quot;
            &gt;.
             </summary>
        </member>
        <member name="T:Habanero.BO.CriteriaManager.SqlOperator">
            <summary>
            Provides a sql operator for use in building sql statements
            </summary>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.SqlOperator.SetParameterSqlInfo(Habanero.Base.IParameterSqlInfo)">
            <summary>
            Copies across the parameterised sql info (see IParameterSqlInfo for
            more detail)
            </summary>
            <param name="info">The IParameterSqlInfo object</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.SqlOperator.Clone">
            <summary>
             Creates and returns a copy of this IExpression instance.
            </summary>
            <returns>Returns a copy of this IExpression instance.</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.SqlOperator.#ctor(System.String)">
            <summary>
            Constructor that sets the operator to that provided, ensuring it
            is converted to upper case
            </summary>
            <param name="sqlOperator">The new operator</param>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.SqlOperator.ExpressionString">
            <summary>
            Returns the expression string, which in this case is the operator
            being represented
            </summary>
            <returns>Returns the operator</returns>
        </member>
        <member name="M:Habanero.BO.CriteriaManager.SqlOperator.SqlExpressionString(Habanero.Base.ISqlStatement,System.String,System.String)">
            <summary>
            Adds the operator to the end of the given sql statement.
            See IExpression.SqlExpressionString for more detail on the
            format of the arguments.
            </summary>
        </member>
        <member name="T:Habanero.BO.BusinessObjectException">
            <summary>
            Provides an exception to throw when a business object is not found
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BOPropWriteException">
            <summary>
            Provides an exception to throw when a there is an issue writing to a property on 
            the businessobject due to the ReadWriteRule that has been set up for the property.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropWriteException.#ctor(Habanero.BO.ClassDefinition.PropDef)">
            <summary>
            Constructor to initialise the exception
            </summary>
            <param name="propDef">The property definition for the property that had the ReadWriteRule which threw the error.</param>
        </member>
        <member name="M:Habanero.BO.BOPropWriteException.#ctor(Habanero.Base.IPropDef,System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="propDef">The property definition for the property that had the ReadWriteRule which threw the error.</param>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BOPropWriteException.#ctor(Habanero.BO.ClassDefinition.PropDef,System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="propDef">The property definition for the property that had the ReadWriteRule which threw the error.</param>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BOPropWriteException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="P:Habanero.BO.BOPropWriteException.PropDef">
            <summary>
             The property definition for the property that had the ReadWriteRule which threw the error.
            </summary>
        </member>
        <member name="T:Habanero.BO.BOPropReadException">
            <summary>
            Provides an exception to throw when a there is an issue writing to a property on 
            the businessobject due to the ReadWriteRule that has been set up for the property.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOPropReadException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BOPropReadException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BOPropReadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusinessObjectNotFoundException">
            <summary>
            Provides an exception to throw when a business object is not found
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectNotFoundException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectNotFoundException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectNotFoundException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectNotFoundException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusinessObjectReferentialIntegrityException">
            <summary>
            Provides an exception to throw when a the referential integrity constraints of 
            a business object are being violated
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectReferentialIntegrityException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusinessObjectReferentialIntegrityException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectReferentialIntegrityException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusinessObjectReferentialIntegrityException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjPersistException">
            <summary>
            Provides an exception to throw when a the referential integrity constraints of 
            a business object are being violated
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjPersistException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjPersistException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjPersistException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjPersistException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.InvalidPropertyValueException">
            <summary>
            Provides an exception to throw when a property value is invalid
            </summary>
        </member>
        <member name="M:Habanero.BO.InvalidPropertyValueException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.InvalidPropertyValueException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.InvalidPropertyValueException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.InvalidPropertyValueException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjectInAnInvalidStateException">
            <summary>
            Provides an exception to throw when a business object is in an
            invalid state
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjectInAnInvalidStateException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjectInAnInvalidStateException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjectInAnInvalidStateException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjectInAnInvalidStateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjectConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="F:Habanero.BO.BusObjectConcurrencyControlException._obj">
            <summary>
            The Business Object the concurrency control exception is for
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.#ctor(System.String,System.Object)">
            <summary>
            Constructor to initialise the exception with the specified message
            to display and the object in question
            </summary>
            <param name="message">The error message</param>
            <param name="obj">The object involved in the exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.BO.BusObjectConcurrencyControlException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets object data using the specified serialisation info and
            streaming context
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="P:Habanero.BO.BusObjectConcurrencyControlException.getObject">
            <summary>
            Returns the object involved in the exception
            </summary>
        </member>
        <member name="T:Habanero.BO.BusObjOptimisticConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control, where another user has
            subsequently edited the record being saved
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.#ctor(System.String,System.String,System.String,System.DateTime,System.String,Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise the exception with a set of concurrency
            details
            </summary>
            <param name="className">The class name</param>
            <param name="userName">The user name that edited the record</param>
            <param name="machineName">The machine name that edited the record</param>
            <param name="dateUpdated">The date that the record was edited</param>
            <param name="objectID">The object ID</param>
            <param name="obj">The object whose record was edited</param>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.BO.BusObjOptimisticConcurrencyControlException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets object data using the specified serialisation info and
            streaming context
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.BusinessObject">
            <summary>
            Returns the business object in question
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.MachineNameEdited">
            <summary>
            Returns the machine name that edited the record
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.UserNameEdited">
            <summary>
            Returns the user name that edited the record
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.ObjectID">
            <summary>
            Returns the object's ID
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.DateTimeEdited">
            <summary>
            Returns the date that the record was edited
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjOptimisticConcurrencyControlException.ClassName">
            <summary>
            Returns the class name
            </summary>
        </member>
        <member name="T:Habanero.BO.BusObjPessimisticConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control, where another user has
            subsequently edited the record being saved
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.#ctor(System.String,System.String,System.String,System.DateTime,System.String,Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise the exception with a set of concurrency
            details
            </summary>
            <param name="className">The class name</param>
            <param name="userName">The user name that locked the record</param>
            <param name="machineName">The machine name that locked the record</param>
            <param name="dateUpdated">The date that the record was locked</param>
            <param name="objectID">The object ID</param>
            <param name="obj">The object whose record was locked</param>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.BO.BusObjPessimisticConcurrencyControlException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets object data using the specified serialisation info and
            streaming context
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.BusinessObject">
            <summary>
            Returns the business object in question
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.MachineNameEdited">
            <summary>
            Returns the machine name that edited the record
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.UserNameEdited">
            <summary>
            Returns the user name that edited the record
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.ObjectID">
            <summary>
            Returns the object's ID
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.DateTimeEdited">
            <summary>
            Returns the date that the record was edited
            </summary>
        </member>
        <member name="P:Habanero.BO.BusObjPessimisticConcurrencyControlException.ClassName">
            <summary>
            Returns the class name
            </summary>
        </member>
        <member name="T:Habanero.BO.BusObjDeleteConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control, where another user has deleted
            the record in question
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteConcurrencyControlException.#ctor(System.String,System.String,System.Object)">
            <summary>
            Constructor to initialise the exception with details regarding the
            object whose record was deleted
            </summary>
            <param name="className">The class name</param>
            <param name="objectID">The object's ID</param>
            <param name="obj">The object in question</param>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjBeginEditConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control at the point of beginning an
            object edit.  Typically occurs if another user/process has edited the
            object in the database since it was last loaded by the object manager
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjBeginEditConcurrencyControlException.#ctor(System.String,System.String,System.String,System.DateTime,System.String,Habanero.Base.IBusinessObject)">
            <summary>
            Constructor to initialise the exception with a set of details
            regarding the editing of the object
            </summary>
            <param name="className">The class name</param>
            <param name="userName">The user name editing the record</param>
            <param name="machineName">The machine name editing the record</param>
            <param name="dateUpdated">The date that the editing took place</param>
            <param name="objectID">The object's ID</param>
            <param name="obj">The object in question</param>
        </member>
        <member name="M:Habanero.BO.BusObjBeginEditConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjBeginEditConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjBeginEditConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjBeginEditConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjReadException">
            <summary>
            Provides an exception to throw when an object cannot be read.
               Typically due to user permissions.
            </summary>
        </member>
        <member name="F:Habanero.BO.BusObjReadException.mobj">
            <summary>
            Teh Business Object the Exception is for
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.#ctor(System.String,System.String,System.Object)">
            <summary>
            Constructor to initialise the exception with a set of details
            regarding the object
            </summary>
            <param name="className">The class name</param>
            <param name="objectID">The object's ID</param>
            <param name="obj">The object in question</param>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.BO.BusObjReadException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets object data using the specified serialisation info and
            streaming context
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.EditingException">
            <summary>
            Provides an exception to throw when a new edit state is being set
            while the object is already in edit mode
            </summary>
        </member>
        <member name="F:Habanero.BO.EditingException.mobj">
            <summary>
            The business object that had the editing exception.
            </summary>
        </member>
        <member name="M:Habanero.BO.EditingException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.EditingException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.EditingException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.EditingException.#ctor(System.String,System.String,System.Object)">
            <summary>
            Constructor to initialise the exception with a set of details
            regarding the object
            </summary>
            <param name="className">The class name</param>
            <param name="objectID">The object's ID</param>
            <param name="obj">The object in question</param>
        </member>
        <member name="M:Habanero.BO.EditingException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="M:Habanero.BO.EditingException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Gets object data using the specified serialisation info and
            streaming context
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjDuplicateConcurrencyControlException">
            <summary>
            Provides an exception to throw when an error has occurred with the
            business object's concurrency control, where a save is being attempted
            when another user has duplicated the record in question
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjDuplicateConcurrencyControlException.#ctor(System.String,System.String,System.String,System.DateTime,System.String,System.Object)">
            <summary>
            Constructor to initialise the exception with a set of details
            regarding the object that was duplicated
            </summary>
            <param name="className">The class name</param>
            <param name="userName">The user name that duplicated the record</param>
            <param name="machineName">The machine name that duplicated the
            record</param>
            <param name="dateDuplicated">The date when the record was duplicated</param>
            <param name="duplicateWhereClause">The duplicate "where" clause</param>
            <param name="obj">The object in question</param>
        </member>
        <member name="M:Habanero.BO.BusObjDuplicateConcurrencyControlException.#ctor">
            <summary>
            Constructor to initialise the exception
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjDuplicateConcurrencyControlException.#ctor(System.String)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display
            </summary>
            <param name="message">The error message</param>
        </member>
        <member name="M:Habanero.BO.BusObjDuplicateConcurrencyControlException.#ctor(System.String,System.Exception)">
            <summary>
            Constructor to initialise the exception with a specific message
            to display, and the inner exception specified
            </summary>
            <param name="message">The error message</param>
            <param name="inner">The inner exception</param>
        </member>
        <member name="M:Habanero.BO.BusObjDuplicateConcurrencyControlException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Constructor to initialise the exception with the serialisation info
            and streaming context provided
            </summary>
            <param name="info">The serialisation info</param>
            <param name="context">The streaming context</param>
        </member>
        <member name="T:Habanero.BO.BusObjDeleteException">
            <summary>
            Provides an exception to throw when the object cannot be deleted due to either the 
            custom rules being broken for a deletion or the IsDeletable flag being set to false.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjDeleteException.#ctor(Habanero.Base.IBusinessObject,System.String)">
            <summary>
            Constructor to initialise the exception with details regarding the
            object whose record was deleted
            </summary>
            <param name="bo">The business object in question</param>
            <param name="message">Additional err message</param>
        </member>
        <member name="T:Habanero.BO.BusObjEditableException">
            <summary>
            Provides an exception to throw when the object cannot be deleted due to either the 
            custom rules being broken for a deletion or the IsDeletable flag being set to false.
            </summary>
        </member>
        <member name="M:Habanero.BO.BusObjEditableException.#ctor(Habanero.BO.BusinessObject,System.String)">
            <summary>
            Constructor to initialise the exception with details regarding the
            object whose record was deleted
            </summary>
            <param name="bo">The business object in question</param>
            <param name="message">Additional message</param>
        </member>
        <member name="T:Habanero.BO.BOError">
            <summary>
            An Error that has occured on a <see cref="T:Habanero.Base.IBusinessObject"/>.
            </summary>
        </member>
        <member name="M:Habanero.BO.BOError.#ctor(System.String,Habanero.Base.ErrorLevel)">
            <summary>
            the constructor for a <see cref="T:Habanero.BO.BOError"/> 
            </summary>
            <param name="message">The error message that is being shown to the user</param>
            <param name="level">The warning/Error Level (<see cref="T:Habanero.Base.ErrorLevel"/> of the Error</param>
        </member>
        <member name="P:Habanero.BO.BOError.BusinessObject">
            <summary>
            The Business Object that the error occured on.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOError.Level">
            <summary>
            The <see cref="T:Habanero.Base.ErrorLevel"/> of the business object.
            </summary>
        </member>
        <member name="P:Habanero.BO.BOError.Message">
            <summary>
            The Message to be shown to the End user for a particular error message.
            </summary>
        </member>
    </members>
</doc>
